2012-02-01 1 views
0

POM뿐만 아니라 전체 코드베이스를 커밋해야하며 여러 개의 maven 프로젝트 중 한 번에 하나씩 여러 모듈을 포함하는 프로젝트를 체크 아웃해야합니까?SCM에서 MAVEN 프로젝트를 어떻게 구성해야합니까?

각 POM 내에서만 POM을 커밋하고 SCM 정보를 구성해야합니까?

maven SCM 플러그인을 구성 할 때 커밋/체크 아웃이 어떻게 작동합니까? Subversion을 통해 POM을 저장하고 체크 아웃 한 다음 POM을 구체화하여 나머지 파일을 해당 프로젝트에 다운로드 할 수 있습니까? 새 파일을 추가해야하지만, Maven을 통해 SCM을 사용했다면 어떨까요?

나는 단지 pvm 기반으로 SCM 정보를 저장하는 것과 비교하여 svn (표준 방법)을 사용하여 파일을 저장하는 것과 다른 점에 대해 혼란스러워합니다. Maven을 사용하고 SCM 정보로로드하는 방법에 대한 문서는 절대적으로 없습니다.

SCM 정보를 POM 내에 직접 저장하는 것이 가장 좋습니까? 아니면 이전에 말씀 드렸듯이, 전체 프로젝트를 SVN에 각각의 POM을 추가해야합니까?

또는 SCM 정보를 직접 maven에 포함하는 것이 더 낫고 해당 프로젝트를 구체화 할 수 있습니까? Maven SCM 플러그인이 subclipse와 잘 작동합니까? 예를 들어, - 당신이 "Maven POM에서 프로젝트를"구체화 한 후 SVN에서 프로젝트 파일을 가져 와서 버전 관리하에 이클립스에 표시합니까? 내가 Maven POM에 SCM 정보를 삽입했다면, 단지 pom 파일들에 대해서만 별도의 SVN 저장소를 생성 할 수 있습니까? 아니면 모든 POM 파일을 직접 엔지니어링 리포의 트렁크에 넣을 수 있습니까?

누군가가 나를 명확히 설명 할 수 있기를 바랍니다. 나는 매우 혼란 스럽다. 감사!

답변

2

항상 SCM에서 모든 소스 코드를 커밋하십시오. 그렇지 않으면 소스 코드의 기록이 없습니다.

또한 SCM에 POM을 커밋하십시오. 그렇지 않으면 빌드 방법에 대한 기록이 없습니다. 그러한 역사는 소프트웨어의 오래된 브랜치를 빌드 할 수있는 중요한 요소이며 빌드와 소스 코드가 너무 밀접하게 결합되어 있기 때문에 소스 코드와 동일한 저장소에 pom.xml을 커밋하는 것이 좋습니다.

다른 maven 도구를 사용하려면 pom.xml에 SCM을 언급 할 수 있습니다. 그건 선택 사항이지만, 당신이하는 것이 좋습니다. 이를 통해 CI 시스템은 소스 코드의 복사본이 최신 버전인지 확인할 수 있으며 필요한 경우 새 복사본을 체크 아웃하는 데 필요한 구성을 제공합니다.

실제로 코드를 검사하는 도구 나 플러그인을 모르겠습니다. 소스 코드를 체크인하지 않으면 다른 모든 도구가 간단한 pom.xml을 체크 아웃합니다 (SCM에있는 모든 내용이므로). SCM 참조는 소스 코드가 어디에 있는지 알려주지 않습니다. 코드는 (SCM에 없기 때문에)입니다.

+0

부츠 스트랩 핑이라고 생각합니다. 하지만 확실하지 않아요 –

+0

프로젝트를 SVN에 저장하면 Eclipse가 .project 설정과 자동 생성되는 항목이 포함되지 않습니다. 나는 이클립스 프로젝트도 커밋해야 하는가? svn (svn에서 가져 오기> 가져 오기)을 통해 내 maven 프로젝트를 체크 아웃하고 "작업 공간에서 프로젝트로 체크 아웃"을 선택하면 maven/java 프로젝트로 인식되지 않습니다. 단지 pom과 파일을 보여 주지만 메이븐 (maven)을 지원하지 않습니다. 그러나 프로젝트를 Maven 프로젝트로 체크 아웃하면 작동하지만 SVN 컨트롤하에있는 것으로 파일을 표시하지 않습니다. 이상해. 내가 뭘 놓치고 있니? –

+0

@SamLevin, 일반적으로 나는 일식을 확인하지 않습니다.프로젝트 설정 (런타임 환경 설정에 인수를 설정하는 것을 포함)은 svn 업데이트를 수행 할 때 지워지거나 svn 커밋을 수행 할 때 바람직하지 않게 전파되기 때문에 프로젝트 설정이 필요합니다. 그러나 초기 설정을 용이하게하기 위해 파일을 배포하는 것이 유용합니다 (설정해야 할 항목과 위치를 설명하는 설명서는 필요하지 않습니다). 그래서 나는 보통 위치의 바깥에 설정 파일을 저장하는 폴더를 만들고 파일에 적절한 위치에 복사하는 "setup"스크립트를 넣는다. –