2010-06-14 4 views
11

나는 이클립스로 만든 SVN 저장소에 커밋하고 싶은 자바 프로젝트를 가지고있다.Eclipse Java 프로젝트의 SVN에 어떤 파일을 추가해야합니까?

이제 소스 코드를 제외하고는 어떤 파일이 필요합니까? 작업 공간 루트에는 많은 파일과 하위 폴더가있는 .settings 폴더가 있으며 프로젝트 폴더 안에는 .classpath와 .project라는 두 개의 파일과 단일 파일이있는 다른 .settings 폴더가 있습니다. org.eclipse.jdt.core .prefs.

SVN에 위탁해야하며 안전하게 제외 할 수있는 파일은 무엇입니까?

답변

11

팀 전체에 일관된 설정을 사용하려는 경우 모두 유용합니다.

.classpath.project은 누구나 프로젝트를 가져 와서 가져올 수 있습니다. 프로젝트에 포함 된 라이브러리 및 소스 파일에 대한 변경 사항은 모든 사람이 체크인 할 때 선택됩니다.

.settings 디렉토리에는 코드 포맷 옵션과 컴파일러에서 경고, 오류 또는 확인으로 간주하는 것과 같은 항목이 있습니다 . 일관성을 유지하기 위해 필자는 팀의 모든 사람이 형식 지정 표준에 동의 할 수만 있다면이 내용도 확인하기 시작했습니다.

이클립스에서 버전 제어를 통해 물건을 공유 할 때 가장 큰 제한 사항은 라이브러리 정의에 있다는 것을 알게되었습니다. 라이브러리 정의는 사용자별로 저장되는 것처럼 보이므로 .classpath 파일에서 "라이브러리"를 참조하면 모든 다른 사용자는 해당 라이브러리의 내용을 수동으로 정의하거나 내 보낸 라이브러리 정의 파일을 수동으로 가져와야합니다. .


편집 :(아래 주소 @의 mliebelt의 코멘트)

당신이 개발자들 사이에 일관성/표준화를 유지하려는 경우에만 파일을 .settings 커밋 것입니다. 그것이 프로젝트에서 문제가되지 않는다면, .settings 파일을 커밋하지 않는 것이 유지 보수에 대해 걱정할 필요가없는 것입니다. 개인이 선호하는 플러그인과 관련된 파일은 아마도 커밋 할 필요가 없을 것입니다. (그렇다고해도 상처받을 것이라고 생각하지는 않지만 아마 무시 될 것입니다).

커밋할만한 가치가있는 것으로 밝혀진 두 가지 공통점은 org.eclipse.jdt.core.prefsorg.eclipse.jdt.ui.prefs으로, (Java) Eclipse 프로젝트의 핵심입니다.

+1

+1 .settings를 언급합니다. 우리 프로젝트에서는 코딩 지침과 포맷 규칙과 관련하여 많은 문서를 작성하는 것을 피하면서이 파일을 매우 유용하게 사용했습니다. 그 대신에 우리는 그 시간을 보내서 이클립스가 우리에게주는 모든 옵션에 동의하고 프로젝트에 넣었습니다. –

+0

빌드 폴더를 커밋 할 필요가 없다고 가정하는 것이 맞습니까? –

+0

"build"폴더에 컴파일러 또는 다른 자동 생성 파일의 출력이 포함되어 있으면 일반적으로 커밋하지 않습니다. 소스 파일 (예 : 빌드 스크립트)이 있으면 아마 가능할 것입니다. – Ash

2

.settings 폴더는 제외 할 수 있지만 .project 파일은 똑같은 Eclipse 프로젝트를 재구성하려는 다른 개발자에게 유용합니다. 파일을 검사 할 경우 상대 참조 만 있으면됩니다 (그렇지 않으면 수정해야합니다).

+0

물론 프로젝트 디렉토리 내의 .settings 폴더를 언급하고 있습니까? .classpath 파일은 어떻습니까? –

+0

다른 답변에서 네 그렇습니다. .classpath도 필요합니다. 미안합니다. – dplass

+0

'.settings' 폴더는 모든 프로젝트에서 공유합니다. 프로젝트마다'.settings '이 없습니다 ... – mliebelt

2

다른 답변과는 대조적으로 과 관련된 더 나은 환경을 만들었습니다. 함께 작업하는 대규모 오픈 소스 프로젝트의. 파일을 확인하지 않았습니다.

나에게 동의하지 않을 수도 있지만 공유 .project 파일에는 한 가지 문제가 있습니다. 프로젝트에 사용 된 프로젝트 본성에 대한 참조를 포함합니다. 프로젝트의 본성은 로컬 개발자 머신에 설치된 플러그인에 따라 달라집니다.

예 : Java 프로젝트에서 Findbugs를 사용하면 Java 프로젝트에 새로운 성격이 추가됩니다.그 파일을 검사하고, 다른 시스템 (Findbugs가 설치되지 않은)에서 수정 한 다음, 다시 시스템에서이 파일을 사용하면 Findbugs 참조가 없어져서 자동으로 제거되는 모든 Findbugs 검사가 손실됩니다.

그러나 모든 개발자가 동일한 도구를 사용하는 데 동의 할 수 있으면이 문제를 쉽게 해결할 수 있습니다.

+0

좋은 지적입니다. 그러나 모든 개발자에게 동일한 플러그인을 사용하도록 요구하지 않는 오픈 소스 프로젝트에만 해당됩니다. 거기서도 일반적으로 모든 IDE가 사용해야하는 것을 제어하지 않기 때문에 소스를 확인하십시오 _only_. – mliebelt

관련 문제