모듈 A는 모듈 B에 종속됩니다. 모듈 B가 빌드되면 ModuleB.jar이라는 이름이 붙여지며 대상 디렉토리에 복사됩니다. 에 ModuleA.jar와 함께 ModuleB.jar
(이름에 버전) 및 ModuleB-1.0.jar
: 이제 모듈 A의 치어에 나는 버전 번호를 넣어 가지고,하지만 지금은이 개 같은 모듈 B 단지가maven 다중 모듈 종속성 버전
<dependency>
<groupid>com.mycompany.app</groupid>
<artificatId>ModuleB</artifactId>
<version>1.0</version>
</dependency>
을 넣어야 할 대상 디렉토리
나는 우리가 버전 번호가없는 모듈 A의 치어의 종속성으로 모듈 B를 추가하는 어쨌든 거기에이 항아리에 따라 다른 기존 응용 프로그램이 있기 때문에 병의 마지막 이름과 버전 번호를 유지하는 것을 선호
? 전혀 깨끗한 해결책을 찾았는지, 아니면 혼자 힘든 생활을하고있는 것입니까?
EDIT : 명확히하기 :이 모듈은 부모 pom에서 jar로 빌드되며 종속성과 함께 프로젝트의 상위 디렉토리 외부에있는 대상 디렉토리에 복사됩니다. 따라서 두 개의 ModuleB jar가있는 이유는 모듈 B가 컴파일되어 ModuleB.jar로 설정된 최종 이름으로 패키지화 된 경우이고 모듈 A가 모듈 B가 포함되지만 모듈 B를 포함하지만 모듈 B가 포함 된 종속성과 함께 패키지화되고 패키지화되는 경우입니다. 1.0.jar
고마워요!
복사 의존성 실행 (나는 복사하는 동안 버전을 제거 할 수 있지만 그때는 봄 항아리 = /와 같은 제 3 자 항아리에 버전 잃게) :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${build.dir}/lib</outputDirectory>
<overWriteIfNewer>true</overWriteIfNewer>
<stripVersion>false</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
적어도 모든 모듈이 동일한 버전으로 빌드되는 다중 모듈 프로젝트 인 경우, 항상 업데이트해야하는 대신 $ {project.version}을 지정할 수 있어야합니다. 나는 그것이 당신의 실제 문제를 해결할 것이라고 생각하지 않습니다. 두 개의 moduleB jar가 똑같은 체크섬과 모든 것과 같이 다른 이름으로 동일합니까? –
@GerardRyan 예 ModuleB 병은 정확히 다른 이름 일뿐입니다. 편집 한 내용을 살펴보고 무슨 일이 일어나는지 설명합니다. –
종속성을 복사하는 데 사용하는 상위 pom xml을 포함 할 수 있습니까? 솔루션은 종속성 복사본에서 모듈 B를 제외 할 수 있다고 생각합니다. –