자식 모듈을 구축하지 않고 부모 POM 설치


115

Maven 프로젝트에 다음 구조의 부모 POM이 있습니다.

             parent
               |
        ---------------
        |             |
      child1       child2

로컬 REPO에 "부모" 의 POM을 설치하여 child1 이 dependencyManagement에서 수행 한 일부 변경 사항을 적용 할 수 있도록 하고 싶지만 "child2" 가 손상되어 빌드되지 않기 때문에 일반 "새로 설치"를 수행 할 수 없습니다 .

maven으로이 작업을 수행하는 적절한 방법입니다 (부모 pom으로 이동하고 "child2" 모듈에 주석을다는 것 제외).

답변:


191

mvn 명령에서 '-N'옵션을 사용하십시오.

에서 mvn -h:

-N,-non-recursive 하위 프로젝트로 재귀하지 않음


1
'-N'또는 '--non-recursive'옵션은 하위 프로젝트로 재귀하지 않음을 의미합니다.
— STB Land

36

Guillaume이 실제로 옳고 올바른 옵션이지만 개인적으로 부모님을 별도의 모듈로 유지하는 것이 좋습니다.

상속에 대한 최선의 방법은 다음과 같습니다.

aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml

이렇게하면 mvn clean install추가 옵션없이 항상 상위 항목 만 설치할 수 있습니다.

또한 더 많은 프로젝트간에 재사용 할 수 있도록 집계 자 외부에 상위를 가질 수도 있습니다.

부모와 애그리 게이터를 두 가지로 분리하면 많은 이점이 있습니다. 그러나 결국 프로젝트 / 환경에 가장 적합한 것을 선택합니다.


1
나는이 문제로 몇 시간 동안 어려움을 겪었고 아파치 슬링, JackRabbit 및 Artifactory와 같은 일부 프로젝트가 이러한 방식으로 수행되고 있음을 발견했습니다.
— accuya 2012 년

일괄 빌드 (하위 모듈)에서 maven 모듈 상속 (종속성, 속성 등)을 분리했습니다.
— Danubian Sailor

4
이것이 모범 사례로 간주됩니까? 이 접근 방식에 대한 블로그 또는 기타?
— 썰매 '

1
@ArtB 그동안 그런 기사를 우연히 만났습니까?
— Tomislav Nakic-Alfirevic

4
@MaximilianSchulz : 그들이 말하는 것처럼 완벽한 세상은 없습니다 ... 이것은 그것을하는 하나의 선택 일뿐입니다.
— carlspring 2018
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.