자식 모듈을 구축하지 않고 부모 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.