1

개미에서 옮기기 위해 노력하고있는 복잡한 다중 모듈 프로젝트가 있습니다. 우리가 이루고자하는 목표는 다음과 같습니다.MAVEN : 다중 모듈 프로젝트, 빌드를 위해 다른 환경을 추가하는 방법

  1. 개발자 용이 한 개발 및 패키징.

예 : 부모 프로젝트 아들 개발자가 딸 프로젝트 작업을 할 때 그는 단지 부모 프로젝트를 다운로드하고 SON 종속성이 SVN 저장소에서 해결해야한다는 것입니다 내가 원하는

  Parent Project 
       SON 
        GRANDSON A 
        GRANDSON B 
       DAUGTER (DEPENDS ON SON) 
        GRANDSON C 
        GRANDSON D 

. pom.xml에서 dependecy를 정의하여이 작업을 수행 할 수 있지만 두 번째 요구 사항과 충돌합니다.

2) 부모 프로젝트의 모든 딸과 아들을 다운로드하고 컴파일하여 Jenkins와 같은 자동화 된 빌드 관리자가 빌드를 일관되게 검사 할 수 있도록합니다. 그리고 빌드가 성공적이면 maven 저장소에 플래그에 대한 개정을 릴리스하고 싶습니다. 개정판은 각 모듈의 머리 부분에 있어야합니다.

3) 두 가지 절차 모두에서 필자는 필요에 따라 다른 디렉토리에 다른 jar를 포함하는 tar 파일 또는 내 자신의 스타일 디렉토리를 만들고 싶습니다. (나는 ant copy 명령어를 추가하여이를 수행 할 수있다.) 더 좋은 아이디어는

달성하기위한 maven의 표준 접근법은 무엇인가?

+0

각 하위 프로젝트를 고유 한 SVN 저장소에 보관 하시겠습니까? Nexus와 같은 로컬 Maven 아티팩트 저장소가 있습니까? – Boj

+0

예 별도의 레포에 보관하고 싶습니다. 예 archiva - local Maven 유물 관리자와 함께 작업합니다. –

+0

함께 빌드하려면 단일 svn 저장소에 보관하거나 동일한 트렁크에보다 정확하게 넣어야합니다. 그렇지 않으면 잘못된 방향으로 가고 있습니다. – khmarbaise

답변

0

Maven 계층 구조에서 리프 프로젝트 (예제의 손주) 만 코드가 포함 된 실제 모듈이며 아티팩트 (예 : jar)를 생성합니다. 내부 노드 (Parent, Son, Daughter)는 계층 구조 아래 모듈에 의해 공유되는 공통 구성 및 종속성을 보유하는 데에만 사용됩니다. 그러므로, 딸은 아들에게 의존 할 수 없지만, 손자 C는 예를 들어 손자 A에 의존 할 수 있습니다.

상위 프로젝트 계층에 자체 라이프 사이클이있는 경우 (즉, 폼을 독립적으로 릴리스 할 수있는 경우), SVN 모듈에 있어야합니다. 하위 모듈에서 작업하는 개발자는 Jenkins가 배포 한 Archiva에서 자동으로 검색되기 때문에 이러한 Poms를 다운로드 할 필요조차 없습니다. 유사한 상황에 대해서는 this answer을 참조하십시오.

그러나 모든 모듈을 빌드하고 릴리스하려는 것은 동일한 시간임을 나타냅니다. 이 경우 동일한 SVN 저장소에 모든 프로젝트를 유지하여 동일한 pom 계층 구조를 가질 수 있습니다.

관련 문제