문제

프로젝트는 Maven을 사용하여 POM 파일이 주요 프로젝트 정보의 주요 소스입니다. 프로젝트 파일에는 몇 가지 유용한 설정이 있습니다.

OTOH 아이디어는 SVN 이력을 오염시키고 때로는 충돌을 일으키는 프로젝트 파일 구조에서 너무 많은 중복 변화를 일으키는 것으로 보입니다.

.idea 디렉토리와 *.iml 파일을 버전 컨트롤로 유지해야합니까? 전부? 일부?

업데이트: 그래서 내가 찾은 모범 사례는 지금까지 다음과 같습니다.

  1. 모든 아이디어 파일 *.iml 및 .idea 디렉토리를 확인하십시오. 여기에는 귀중한 정보가 포함되어 있으며 업데이트 할 때마다 재현하는 것이 시간 낭비입니다.
  2. 모든 개발자를위한 개인 지점을 만듭니다
  3. .idea 디렉토리로 CD
  4. SVN은 개인 지점으로 전환합니다
  5. 정기적으로 커밋에 아이디어 파일을 확인하지 마십시오. 이력은 오염시킵니다. 특별 커밋에서 확인하십시오.

이렇게하면 .idea 디렉토리의 내용을 버전 제어에 보관하지만 정기적으로 커밋되지 않도록 유지합니다. 모든 개발자는 다른 사람의 아이디어 디렉토리에 액세스 할 수 있습니다.

Update 2: 이 질문이 작성되었으므로 연습을 바꿨습니다. ~ 아니다 많은 응답자가 조언 한 것처럼 모든 Intellij 파일을 버전 컨트롤에 확인합니다. 이것은 Maven과 Gradle의 현재 연습입니다. 도구는 중요한 정보를 원래 .pom 또는 .gradle 파일에서 항상 재현 할 수 있다는 점까지 개발되었습니다. 파일이 변경되면 IDE 트랙은 안정적으로 변경되므로 자주 파일을 잃지 않으므로 확인할 필요가 없습니다.

3 : 업데이트 3. 이 질문을 한 지 7 년 후에도 여전히 관련이있는 것 같습니다. 동일한 모범 사례가 Gradle에도 적용됩니다 (아마도 SBT, 아마도 SBT) : IDE 파일을 확인하지 말고 기본 POM, .gradle 또는 SBT 파일에서 필요에 따라 재현하십시오.

도움이 되었습니까?

해결책

짧은 답변 :이 파일을 소스 제어 저장소에 "생성"할 수 있으므로이 파일을 소스 제어 저장소에 넣지 마십시오.

나는 개인적으로 다음 값을 사용합니다 svn:ignore:

target 
*~ 
*.log 
.classpath 
.project 
*.ipr 
*.iws 
*.iml 
.settings 

다른 팁

Maven의 가장 큰 장점 중 하나는 POM을 Eclipse, Idea 및 NetBeans의 기본 프로젝트로 전환하기위한 도구 지원이 존재한다는 것입니다. POM이 있다면 기본 프로젝트를 매우 빨리 만들 수 있습니다.

이런 이유로, 나는 RMI 스터브 또는 클래스 파일을 확인하는 것보다 소스 컨트롤의 .idea 또는 *.iml 파일을 체크인하지 않을 것입니다.

.idea 디렉토리를 버전 제어에 넣어야한다고 생각합니다. 포함 된 대부분의 구성에는 버전 추적, 예를 들어 컴파일러 구성이 있어야합니다.

버전 컨트롤에 속하지 않는 유일한 파일은 .idea/workspace.xml입니다. 로컬 환경에 맞는 구성 만 포함되어 있기 때문입니다.

Intellij Idea는 실제로 기본적으로 workspace.xml을 무시 목록에 넣으므로 아이디어를 사용하여 체크인하는 경우 아무것도 변경하지 않고 설정해야합니다.

표준 답변은 "프로젝트 파일을 확인하지 말고 .pom"입니다. 그러나 .ipr 파일과 같은 것들에는 .pom 파일에서 파생 될 수없는 유용한 설정이 많이 포함되어 있습니다. 동료 Intellij 사용자가 해당 설정을 공유하고 싶다면 어떻게해야합니까? .ipr 파일이 버전으로 설계되었음을 알고 있습니다 ( 이 스레드 예를 들어). 실제 답변이 있었으면 좋겠지 만 아직이 문제에 대한 모범 사례를 찾지 못했습니다.

내 의견은 IDE 특정 파일을 버전 제어에서 보관해야한다는 것입니다. 아이디어는 Maven POM 파일 등과 같은 IDE 독립적 인 형태로 가능한 정보를 유지해야한다는 것입니다. 모든 중요한 프로젝트 설정은 거기에 보관할 수 있습니다. 그리고 모든 주요 프로젝트 설정을 POM 파일에 보관하면 아이디어 프로젝트 구성뿐만 아니라 다른 IDE 특정 구성을 체크인해야 할 심각한 이유가 없습니다. 또한 .idea 폴더 스타일 프로젝트 구성은 실제로 변경 로그를 오염시킵니다. 그리고 우리는 여전히 아이디어 프로젝트 설정을 버전 제어에 유지하고 싶으며 적어도 단일 .ipr 파일 형식으로 저장할 수 있습니다.

나는이 파티에 늦었지만이 정확한 문제는 나를 괴롭 히고 있습니다. 그리고 나는 적어도 우리의 소스 제어 시스템에서 내가 효과가 있다고 믿는 것에 영감을 받았습니다.

Intellij 파일은 권위있는 pom.xml 및 소스와 함께 "함께"저장할 필요가 없습니다. 비 소스 관련 변경 사항이 소스 트리의 다른 위치에 기록 된 경우 버전 제어 기록은 "오염되지 않은"것이 아닙니다.

따라서 Intellij 파일을 버전 제어 시스템의 평행 위치로 이동하고 간단한 파일/디렉토리 매핑을 사용하여 개발자 시스템의 소스 및 프로젝트 파일을 통일시키고 순전히 영향을 미치는 파일에 대한 버전 제어 시스템의 변경 사항을 모니터링합니다. 빌드.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top