programing

.classpath 및 .project - 버전 제어에 체크인하시겠습니까?

easyjava 2023. 5. 4. 20:44
반응형

.classpath 및 .project - 버전 제어에 체크인하시겠습니까?

저는 종속성 트리에서 여러 모듈로 구성된 오픈 소스 Java 프로젝트를 실행하고 있습니다.이러한 모든 모듈은 하위 버전 저장소의 하위 디렉터리입니다.우리 프로젝트에 새로 참여한 사람들에게는 일식에 수동으로 모든 것을 설정하는 것은 많은 일입니다.

모든 개발자가 일식을 사용하는 것은 아닙니다.그럼에도 불구하고 우리는 새로 온 사람들이 시작할 수 있도록 .classpath와 .project 파일을 확인하는 것을 고려하고 있습니다.이것이 좋은 생각입니까?또는 이러한 파일에서 지속적인 충돌이 발생할 수 있습니까?일식 시 프로젝트를 쉽게 설정할 수 있는 다른 방법이 있습니까?

확실히 그렇습니다. "프로젝트 파일을 버전 관리 에 유지하십니까?"에서 언급했듯이 말입니다.

"올리고, 세우고, 가."

그러나... 이는 빌드 경로가 상대 경로를 지원하는 최근 Eclipse 3.5 설정에만 해당됩니다.

빌드 경로가 상대 경로를 지원합니다.


그리고 Eclipse 3.6은 경로 변수에 대한 상대 경로를 지원하기 때문에 더 나을 것입니다.Linked Resources:

상대 경로가 있는 경로 변수
(3.6M5 이후)

물론 아닙니다. 서브버전을 통해 프로젝트 파일을 배포하는 것은 일반적으로 끔찍한 생각입니다.특히 누군가가 이상한 방식으로 수정할 수 있기 때문입니다.프로젝트 문서의 좋은 페이지가 훨씬 더 좋은 생각입니다.우리의 프로젝트는 또한 많은 모듈과 복잡한 설정을 가지고 있습니다.우리는 각 인기 있는 IDE - IntelliJ, Eclipse, NetBeans에서 프로젝트를 시작하는 방법을 설명하는 합류 페이지를 설정했습니다.하위 버전의 README 파일에도 동일한 정보가 포함되어 있습니다.

반대합니다만, 일반적으로 메이븐에서 파일을 생성하기 때문입니다.

제 경험에 따르면, 순수하게 로컬 설정이 관련된 제한된 경우를 제외하고 모든 것은 소스 제어에 있어야 합니다.원천 통제의 법칙은 밀어넣은 모든 것이 철수하는 사람들에 의해 작동할 것으로 기대되어야 한다는 것입니다.불행하게도, 일식은 종종 이런 것들을 발생시킵니다..classpath:

    <classpathentry kind="con" 
      path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7"/>

제 Mac에서는 이것이 작동하고, Mac에서는 누군가가 동일한 JRE를 가지고 있을 수 있지만, 다른 사람에게는 작동하지 않을 것입니다.

또한, 이것을 피할 수 있는 쉬운 방법은 없습니다.Eclipse는 항상 그것을 추가합니다.저는 .classpath 파일을 가지고 싶습니다. 왜냐하면 우리의 lib 폴더에는 버전 관리에 관심이 있는 서드파티 JAR이 있기 때문입니다. 그래서 우리는 그것들을 거기에 남겨서 새로운 개발자들이 그것들을 가져올 필요가 없습니다.관리되는 시스템으로 이동하지만 여전히 관리되지 않는 종속성이 체크인되어 있습니다.즉, 모든 개발자들은 두 개의 디렉토리가 그들의 것인지 확인하기만 하면 됩니다..classpath하지만 끌 때마다 JRE를 수정하고 커밋할 때마다 .classpath를 변경하는 것보다 더 좋습니다.

하지만 이클립스는 여러분을 위해 다른 좋은 일들을 해줍니다. 간에 합니다.project 파일은 일반적으로 인스턴스 간에 동일하므로 이를 포함합니다.그러나 이클립스에 대한 소스 제어의 가장 좋은 점은 실행 구성 설정입니다.[구성 실행] 대화상자의 "공통" 탭 아래에 있는 구성을 저장하여 [디버깅 및 실행]의 즐겨찾기 목록 아래에 동료에 대해 표시합니다.저 같은 경우에는 여러 가지..launch은 파이저니다에 ..settings우리 모두가 사용할 수 있도록 디렉토리.

그래서 나는 말합니다:.settings디렉토리가 시작 구성의 소스 제어로 이동(*.pref 제외)

.classpath 금지

.project들어갑니다.

새로운 사용자가 최대한 쉽게 시작할 수 있도록 이 파일들을 체크인하겠습니다.사용자는 기껏해야 프로젝트를 체크아웃하고 별도의 지식 없이 프로젝트를 실행할 수 있어야 합니다.이 파일의 규칙은 프로젝트의 다른 파일과 동일합니다. 주의하여 처리하십시오.소스 코드에 절대 경로를 지정해서는 안 되며 구성 파일에도 절대 경로를 지정해서는 안 됩니다.

프로젝트를 처음부터 실행하는 방식으로 파일을 체크인하는 경우 파일을 변경할 수 있는 힘이 많지 않아야 합니다.

파일에 단일 개발자 환경에 직접 연결할 수 있는 절대 경로 및 기타 데이터가 포함되어 있지 않으면 하위 버전으로 파일을 체크하는 것이 좋습니다.

파일에 절대 경로 등이 포함된 경우 README를 선택하는 것이 좋습니다.

예, 반드시 체크인해야 하지만 경로 종속성을 문서화하고 가능한 경우 절대 경로를 피해야 합니다.

이 설정을 체크인하지 않으면 프로젝트를 체크아웃하는 모든 사용자가 이러한 설정을 다시 만들어야 합니다. 이 설정은 귀찮고 오류가 발생할 가능성이 있습니다.

일부 복잡한 설정은 이러한 파일을 생성하는 스크립트를 통해 더 잘 처리할 수 있지만 일반적으로 파일을 체크인하는 것이 좋습니다.

언급URL : https://stackoverflow.com/questions/2818239/classpath-and-project-check-into-version-control-or-not

반응형