2012-04-24 2 views
3

팀은 Eclipse를 사용하여 여러 Java 프로젝트를 처리하고 코드 저장소를 사용하여 코드를 공유합니다.코드 저장소의 Eclipse .classpath 동기화

jar 파일을 개발자가 추가, 제거 또는 업데이트하면 Eclipse에서 빌드 경로를 업데이트 할 때까지 다른 모든 사람이 빌드가 중단됩니다. 이 프로세스에는 성가신 이메일 동기화가 필요합니다.

몇 가지 이유 때문에 .classpath 파일을 repo에 적용하지 않기로 결정했습니다. 대신 다음과 같은 아이디어를 내놓았습니다. 각 프로젝트에는 jar 개의 파일 (및 패턴) 목록이 포함 된 커밋 된 파일 (예 : jars.list)이 있습니다. 스크립트는이 파일을 Eclipse 용 로컬 .classpath으로 변환합니다. 개발자가 항아리를 변경할 때마다 jars.list을 변경하고 커밋해야합니다.

합리적인 해결책입니까? 이 문제에 대한 기존 솔루션이 있습니까?

+0

소스 제어로 .classpath와 .project를 확인하는 것이 의도 된 접근 방법입니다. 왜 그걸하지 않니? –

+0

개인 구성으로 인해 많은 충돌이있을 수 있습니다. –

+0

그건 말이 안되네. '.classpath' 파일은 공유 할 수 있습니다. 프로젝트에 JAR 저장, 클래스 패스 변수 사용 등의 "Libs"프로젝트가있는 등 다양한 기술을 통해 절대 경로를 자유롭게 유지할 수 있습니다. 결론은'.classpath'에서의 chcking은 의도 된 것입니다. 정교하고 수동으로 처리하려는 작업을 수행하는 방법. –

답변

4

이클립스 .project.classpath 파일/구성 버전 관리 저장소 (CVS, SVN, 자식 등)로 확인할 수 있도록 설계되었습니다 ... 당신은 문제없이 .classpath을 공유 할 수있을 것. Eclipse 위키에서 this page을 참조하십시오.

위의 의견 섹션에서 언급 한 .classpath 파일을 "깨끗한"(즉, 절대 경로가없는) 여러 가지 방법으로 유지할 수 있습니다.

+0

올바른 접근 방식처럼 보입니다. 유일한 문제점은 JRE입니다. JRE는'.classpath'에 나타나지만 시스템에 따라 다릅니다 : http : // stackoverflow.com/questions/10371512/eclipse-classpath-in-svn-jre-collision –

+0

이 질문에 대한 답 중 하나가 지적되면 실행 환경을 사용하는 것이 원하는 Java 버전을 지정하는 올바른 방법입니다. 기계 별 JRE 스펙은 역사적으로 남은 것이므로 IMO 구성 옵션에서 제거해야합니다. 실행 환경은 .classpath를 "깨끗하게"유지할 수있게 해주는 실제 JRE 위치 위에있는 추상화입니다. –

2

JAR의 절대 경로가 각 개발자 컴퓨터마다 다르므로 빌드가 끊어 졌습니까?

<classpathentry kind="var" path="LIB_DIR/path/to/file.jar"/> 

는 다른 솔루션이 있습니다 : 그렇다면, 당신은 문제, 각 개발자는 (LIB_DIR 같은) 하나 개의 변수를 구성해야이 방법을 피하기 위해 사용자 변수를 추가 할 수 있습니다. Eclipse에서 일부 사용자 라이브러리를 구성하여 JAR을 그룹화 한 다음 repo에서 공유 할 수있는 .userlibraries 파일을 내보낼 수 있습니다. 이렇게하면 .classpath에는 절대 경로가 없지만 그들은 .userlibraries에 존재합니다.

Maven과 같은 도구를 사용하여 프로젝트의 종속성을 관리 할 수도 있습니다.

어쨌든, 나는