나는 (패키지 단계에서 maven-assembly-plugin을 통해) 어셈블리를 사용하여 각 모듈을 특정 방식으로 패키징하는 다중 모듈 maven 2 프로젝트를 보유하고 있습니다. 그런 다음 다른 모듈을 사용하여 이러한 어셈블리를 배포 가능한 "설치 관리자"패키지로 결합하려고합니다. 설치 프로그램 모듈의 경우 다른 프로젝트의 기본 jar 파일을 볼 수 있지만 추가 어셈블리에 대한 액세스 권한을 부여하지는 않습니다. 설명서에서 이것이 가능한 것이 틀림 없으므로 내가 틀린 일을하거나 Maven의 버그라고 가정합니다. 나는 몇 일 동안 이것으로 지금 붙어 있었고 그래서 어떤 도움을 주시면 감사하겠습니다!어셈블리의 Maven 어셈블리
다음은 github에서 테스트 프로젝트를 작성하여 proj1 모듈이 2 개의 jar 파일을 작성한다는 설명입니다. 나는 "패키지"모듈에서 생성 된 어셈블리가 둘 다 포함되도록 기대할 것이지만 기본 프로젝트 병을 포함하지는 않습니다.
https://github.com/unluckypixie/maven-packaging-test
참고 : 나는 참고 Proj1 하나의 항아리의 내용을 알고이 예에서 동일 - 나는으로 Proj1 파일이 무엇인지 생각하지 않지만, 내 실제 상황에없는 문제와 관련이 있습니다. 당신이 볼 수
mvn clean package
을 그리고 ls proj1/target/*.jar
를 수행합니다 :
jar -tvf package/target/package-1.0-SNAPSHOT-package-assembly.jar
당신은 같은 것을 볼 것입니다 : 패키지 항아리를 보면
proj1/target/proj1-1.0-SNAPSHOT.jar
proj1/target/proj1-1.0-SNAPSHOT-proj1-assembly.jar
당신이 실행하는 경우 :
0 Mon Jul 30 16:27:00 BST 2012 META-INF/
106 Mon Jul 30 16:26:58 BST 2012 META-INF/MANIFEST.MF
0 Mon Jul 30 16:21:46 BST 2012 package/
2358 Mon Jul 30 16:21:44 BST 2012 package/proj1-1.0-SNAPSHOT.jar
2363 Mon Jul 30 16:21:46 BST 2012 package/package-1.0-SNAPSHOT.jar
나는 proj1/target/proj1-1.0-SNAPSHOT-proj1-assembly.jar
이 왜 거기에 없는지에 대해 알고 싶습니다. (여기에 몇 가지 수정을 만든)
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>package-assembly</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<moduleSets>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>org.test.parent:*</include>
</includes>
<binaries>
<outputDirectory>/package/</outputDirectory>
<unpack>false</unpack>
</binaries>
</moduleSet>
</moduleSets>
</assembly>
proj1 대상 폴더를 보면 두 개의 출력 항아리가 있습니다. 하나는 가지고 있고 다른 하나는 접미어로 어셈블리 이름이 있습니다. "proje1-1.0.0-SNAPSHOT-proj1-assembly.jar"하나가 내가 한 것입니다. 그래서 출력 파일에는 3 개의 jar 파일이 있어야하고, proj1 *과 package *라는 두 파일이 있어야합니다. –
당신의 예제에 따라 git hub에서 테스트 프로젝트를 만들었습니다 ... 전에 stackoverflow에 게시하지 않았으므로 그렇게 생각하지 않았습니다. –
문제를 해결하기 위해 끌어 오기 요청이 추가되었습니다. – khmarbaise