2013-11-25 2 views
0

나는 초보자입니다. 내 프로젝트는 ProjectA에 mvn clean package을 실행해야 JarA를 제공한다는 점에서 다른 Maven 프로젝트 (ProjectA)에 의존합니다.maven 프로젝트 종속성이 생성 된 jar입니다 (메이븐 저장소에는 없음)

그런 다음 Java JarA를 실행하여 xar 구성 파일을 제공하여 JarB를 제공해야합니다. JarA와 JarB 둘 다 내 프로젝트 (ProjectB)에 의존해야합니다.

projectB의 pom 파일에서 이러한 단계를 수행 할 수 있는지 여부에 대한 의견이 있으십니까? 부모 - 서브 모듈 유형의 ​​구성 도움이 필요합니까? 감사!

+1

는 소리 프로젝트 A에 mvn install를 실행해야합니다. 만약 그들이 단단히 의존적이지 않다면 (즉, 별개의 별개의 프로젝트 인 경우) 각 프로젝트를 로컬 저장소에 넣기 위해'mvn install '을 사용하기 만하면됩니다. – Crollster

답변

0

아마도. JarB를 얻는 가장 간단한 해결책은 프로젝트 A에 단위 테스트를 추가하는 것입니다.하지만이 테스트는 JAR에 대해 Maven에게 알려주지 않으므로 무시합니다.

다음 단계는 JarB를 프로젝트 A의 target/ 폴더에 JarA-config로 작성하는 테스트를받는 것입니다. Maven은 "빌드 결과"로 여러 아티팩트를 지원합니다. 그런 다음 "한정자"를 사용하여 이들을 구별 할 수 있습니다.

build-helper:attach-artifact을 사용하면 두 번째 JAR에 대해 Maven에게 알릴 수 있습니다. 예를 보려면 "Attach additional artifacts to your project"을 참조하십시오.

test 이후에 package이 발생하므로 테스트 사례에서 두 번째 JAR을 생성하고 build-helper이 찾게됩니다.

프로젝트 B에서는 다음

<dependency> 
    <groupId>x</groupId> 
    <artifactId>jarA</artifactId> 
</dependency> 
<dependency> 
    <groupId>x</groupId> 
    <artifactId>jarA</artifactId> 
    <classifier>config</classifier> 
</dependency> 

참고 추가 <classifier> 요소를 모두 JAR 파일에 의존하는이를 사용할 수 있습니다.

참고 :이 작업을 위해, 당신은이 프로젝트의 각각 다른 사람에 밀접하게 의존하는 경우, 당신은 아마, 메이븐 모듈의 사용을 만들고 싶어처럼

관련 문제