2011-01-27 5 views
8

자바 프로젝트를 이클립스 프로젝트 형식으로 상속했습니다. (V7로 V6에서) 바람둥이 구성을 변경 한 후, Subclipse에 다음 파일이클립스로 변경된 파일을 커밋해야합니까?

  • .classpath
  • org.eclipse.core.prefs
  • org.eclipse.common.project.facet를 저지 나에게 메시지 .core.refs
  • org.eclipse.common.project.facet.core.xml

는 그들의 작업 공간과 혼란을 내 팀원을 도와 줄 것입니다 커밋 것인가?

가장 좋은 방법은 무엇입니까?

+3

http://stackoverflow.com/questions/116121/do-you-keep-your-project-files-under-version-control/119377#119377 또는 http://stackoverflow.com/questions/2024307을 참조하십시오./what-should-be-commit-to-the-eclipse- 작업 공간, 또는 (보다 일반적인) http://stackoverflow.com/questions/1880817/what-to-put-under-version- 제어 – VonC

+1

와우. 나는 조금 둘러 보려고 노력했다. 나는 나의 질문이 두세 가지로 "깰"수 있고 그들 각각에게 적절한 반응을 줄 수 있다고 생각한다. 가장 좋은 대답은 당신의 의견이라고 생각합니다 :-) –

답변

11

일반적으로 빌드에 기여하고 완전히 다시 빌드하여 다시 생성 할 수없고 워크 스테이션에 특정한 모든 것을 체크 인 (변경 후 커밋)해야합니다. (이 문장의 의미는 의도 한 빌드 프로세스/프로 시저에 따라 달라집니다.)

전체 빌드시 등에서 다시 생성 된 모든 것을 제외해야하므로 체크 인되지 않습니다. 체크인).

+3

또한이 질문에 포함 된 모든 파일은 파일 경로 및 사용자 기본 설정과 같은 워크 스테이션 종속 항목에 대해 검사해야 함을 의미합니다. 그리고 워크 스테이션이나 사용자 중 일부에 종속되어 있지 않으면 특정 파일을 커밋하는 데는 아무런 문제가 없습니다. 예를 들어 .classpath에는 파일 시스템 경로가 포함될 수 있지만 워크 스테이션 독립 라이브러리 이름 만 포함 할 수 있으며 경로는 다른 곳에서 정의됩니다. –

+0

@ Sergey Tachenov : 네, 그게 제가 의미하는 바입니다. "이 문장의 의미는 의도 한 빌드 프로세스/절차에 달려 있습니다." – TheBlastOne

+1

나는 모든 것을 검사하고 파일이 모든 경로에 독립적임을 확인했습니다. 나는 이클립스에서 모든것이 경로 독립적이거나 종속적 일 것이라고 생각했지만 둘 다 아니라고 생각했다. –

0

우리가 한 것은 프로젝트에서 다른 사람들의 작업 공간을 망칠 수 있기 때문에 이러한 파일을 무시하는 것입니다.

또한 무시하면 내가 항상 좋아하는 프로젝트가 더 깨끗해집니다.

+0

뭔가를 downvote 때 Pls는 설명을 제공합니다. – fmucar

+0

나는 downvoter가 "clean up the workspace"의 경우처럼 "cleaner"가 너무 애매하다고 생각했다. 전형적인 새내기 상황 : 당신은 시도하고, 멀리 부딪히지. 계속해서, @cgratgny, 그것으로부터 배워라. 그러면 당신의 포인트 밸런스는 조만간 폭발 할 것이다. 이 초기 학습 곡선에 좌절하지 마십시오. 정상으로 간주 될 수 있습니다. – TheBlastOne

+0

댓글을 주셔서 감사합니다. @ TheBlastOne. 나는 내가 시도하고 있다는 것을 알고있다. 그들이 제공하는 솔루션에서 다른 사람들처럼 웅변 적이지는 않다. – Chris

0

이러한 파일에는 환경 특정 경로가 포함될 수 있으므로 해당 경로를 검사하지 않는 것이 좋습니다. 현재 프로젝트에서는 개미 스크립트를 사용하여 프로젝트를 만들고 모든 코드를 처음으로 체크 아웃합니다.

4

경로/설정이 워크 스테이션마다 다를 수 있으므로 파일을 커밋하지 않는 것이 좋습니다.

이것을 극복하기 위해 일부 빌드 도구를 사용하고 싶을 수 있습니다. (예 : Maven)

팀원 중 누군가가 Eclipse를 사용하고 있지 않은 것처럼 (다른 IDE를 사용하는 경우) 해당 파일은 의미가 없습니다.

모두가 다른 IDE 설정을 커밋하는 경우 어떤 종류의 혼란이 생길지 상상해보십시오.

편집 :

추가 설명;

저는 NetBeans, Eclipse, IDEA ...를 사용하는 팀에서 일해 왔습니다. 정말 오랜 시간 동안 IDE를 변경하는 것이 실제로 불가능합니다. 그것은 그 사람의 생산성에만 영향을줍니다.

사람들은 자신의 IDE에 익숙해지면 shorcuts를 배우고 일부 기능 (refactor/getter setter/implement override required methods ....)을 어디에서 찾을 수 있는지 알기 때문에 다른 IDE를 사용해야한다면 그 (것)들을 위해 더 열심히하고 전체적인 과정을 위해 더 느리게 만들 것이다. IMHO와 유연한 코드베이스를 가지고있는 나의 경험에서 항상 좋다. 나는 이클립스 녀석이고 아마도 다른 IDE와 함께 일하고 싶지 않을 것이다. 내가 더 빨리/더 쉽게 나를 만들 수있는 많은 shorcuts를 알기 때문이다. 그리고 그 shorcuts는 다른 IDE에서 다르다.

모든 IDE 파일은 몇 번의 클릭만으로 IDE에서 자동으로 재생성 될 수 있습니다.

그리고 현재 프로젝트에는 문제없이 NetBeans IDEA를 사용하는 3 명의 개발자가 있습니다. IDEA 또는 NetBeans 설정 파일을보고 싶지 않습니다.이 파일은 repo에서 소스를 체크 아웃 할 때 아무런 의미가 없습니다. 마찬가지로 그들을 위해.

+0

+1 워크 스테이션 특정 측면에 대해. 그 답례로, 나는 내 자신의 대답에이면을 추가 할 수있었습니다. – TheBlastOne

+1

-1 누구에 의해? 왜? – TheBlastOne

+0

"누구에 의해? 왜?" :) 완전한 질문 문장은 내가 그 질문이 무엇인지 이해하게 할 것이다. – fmucar

4

예, 경로가 절대 경로가 아닌 작업 영역에서 상대 경로인지 확인하십시오. 이러한 파일을 작업 영역에두면 팀 구성원이 현재와 동일한 환경에서 작업 할 수 있습니다. 또한 새 개발 환경을 훨씬 쉽게 설정할 수 있습니다. 소스 컨트롤에서이 파일을 체크하고 Eclipse에서 '가져 오기 ...> 기존 프로젝트를 작업 영역으로 사용'

@adamdunne은 언급 한 바와 같이이 파일에는 환경에 특정한 경로. 그러나 경로를 작업 영역 내에서 상대 경로로 설정하고, 변수를 사용하고 작업 공간의 프로젝트에서 jar 파일 만 포함하여 외부 jar 파일을 가져 오지 않도록주의를 기울이면 괜찮습니다. 내 작업 공간에서 우리는 파일을 체크인하고 dev를 설정하는 데 훨씬 적은 문제가있었습니다. 환경.

+0

워크 스테이션 관련 구성 세부 정보를 제거하는 방법을 나타내는 +1입니다. – TheBlastOne

+0

우리는 이것을 ('가져 오기 ...> 기존 프로젝트를 작업 공간으로') 수행했는데, 이것이 제가 처음에 질문 한 이유입니다.현재 우리 팀은 훈련 모드에 있으며 프로젝트의 수명주기 동안 최대한 많은 모범 사례를 채택하고자합니다. –

1

모든 개발자가 같은 것을 사용하는 것이 매우 유용하기 때문에 .classpath 파일을 커밋하는 프로젝트에서 작업합니다. 작업 공간 내에서만 의존성을 사용하면이 파일은 상대 경로를 사용하므로 모두 동일해야합니다 기계. 이 파일을 빌드 할 필요가 없더라도 (예 : 개미로) 동기화하는 것이 매우 편리합니다.

는 대조적으로 org.eclipse.core.prefs 매장 (AFAIK) 프로젝트 별,하지만 난에 확인하지 것이다 개발자의 개인 기본 설정. 패싯으로

나는 아직 일을 않았나 진짜 프로젝트, 그래서 나는 말할 수 없다. 하지만 일반적으로 파일의 정보와 작업 방식에 달려 있다고 생각합니다.

확실하지 않은 경우 시도해보십시오. 하루 종일이 파일들에 충돌이 발생하면 이것이 완벽한 방법이 아닐 수도 있다는 암시입니다.

+1

>> 확실하지 않다면 시도해보십시오. << 나머지 팀은 즉시 그 경험을 즐기게합니다. 이 파일들에 하루 종일 충돌이 생기면 나머지 팀들도 파일을 가져올 수 있다는 힌트가되고 빌드를 성공적으로 폭격합니다. – TheBlastOne

+0

>>이 파일들에서 충돌이 발생하면 하루 종일 당신에게 힌트를줍니다. << 듀크 누켐 (Duke Nukem)은 이렇게 말합니다. "헤헤 헤헤, 뭐라구." :) – TheBlastOne

+0

org.eclipse.core.prefs는 Java 컴파일러 소스 및 대상 버전 및 경고/오류 설정과 같은 것을 저장합니다. 실제로 모든 개발자가 스스로 결정할 필요는 없습니다. –

1

이 파일은 개발자 간의 구성을 공유하는 데 매우 유용 할 수 있습니다. 대안은 Maven (기존 프로젝트의 거대한 작업 임)을 사용하거나 단계별 지침과 새로운 개발자가 프로젝트를 빌드 할 때까지 반나절 반에 걸쳐 진행되도록하는 것입니다.

그러나 이러한 구성이 이식 가능한지, 즉 로컬 경로가 없는지주의해야합니다. 이는 작업 공간 내의 상대 경로, Eclipse 경로 변수 및 사용자 라이브러리를 사용하여 수행 할 수 있습니다.

+0

나는 또한 다른 코멘트에서 그것을 썼다, 나는 일식이 모든 경로를 상대적이거나 절대적이라고 믿었지만 둘 다 가지고 있다고 믿었다. 이것은 내가이 질문을 게시 한 주된 이유입니다. 이 조언과 유사한 조언을 토대로 모든 파일을 검토하기 시작했으며 각각의 파일에서 무슨 일이 진행되고 있는지 보았습니다. 고마워. –

+0

@dimitris : 둘 다 가질 수 있습니다. 예를 들어, .classpath 파일에 항목을 생성하는 프로젝트의 빌드 경로에 JAR을 추가 할 때 작업 공간 내에서 파일을 선택하고 상대 경로를 생성 할 수있는 "JAR 추가"옵션이 있습니다. 및 "외부 JAR 추가"를 사용하면 파일을 선택하고 절대 경로를 생성 할 수 있습니다. –

4

일반적으로 사용자 기본 설정 및 Eclipse 및/또는 사용자 플러그인이 재생성 할 수있는 프로젝트 세부 정보를 포함하는 파일을 커밋하지 않아야합니다.

그러나 어떤 경우에는 상황이 다소 어둡습니다. 예를 들어 .classpath 파일 이클립스 빌드 경로의 주요 소스가 될 수 있습니다. 예 : Maven을 사용하는 대신 프로젝트 트리에 JAR 파일이있는 경우. Maven을 사용하면 m2eclipse 플러그인이 POM 파일의 종속성 정보에서 .classpath 파일을 생성하므로 파일을 체크 인하면 안됩니다.

또한 일부 패싯은 경계선입니다. 예를 들어, JSP와 자바 스크립트가있는 프로젝트에서 깨진 유효성 검사기를 사용하지 못하도록 패싯 속성을 변경하는 것이 중요하다는 것을 알게되었습니다. 그리고 이러한 변화를 개인적 선호보다는 프로젝트의 일부로 다루는 좋은 사례가 있습니다.

개인 취향의 그룹/프로젝트 환경 설정은 (IMO) Eclipse가 심각하게 부족한 부분 중 하나입니다.

+0

다른 IDE가 더 좋습니까? 그렇다면 어떻게됩니까? 나는 Eclipse가 그렇게 생각한다 : 중요한 프로젝트 구성을 프로젝트 디렉토리 내에 텍스트 파일로 갖는 것이 좋다. 다양한 형식의 다양한 파일에 파일을 배포하는 것은 그리 좋지 않습니다. –

+0

@Michael - * "다른 IDE가 더 좋습니까?"* - 진지하게, 나는 모른다. 그리고 아마도 너무 어렵거나 너무 늦어서 고칠 수없는 것들 중 하나 일 것입니다. –

관련 문제