Nate는 대부분이 부분을 다루었지만 구체적인 예를 제시 할 것입니다.
<modules>
<modules>core</modules>
<modules>examples</modules>
</modules>
이 기지를 가정의 groupId는 "com.company입니다 다음과 같이 기본 치어에서
pom.xml
src/main/assembly/assembly.xml
core/pom.xml
core/src/main/java/...
core/src/test/java/...
examples/pom.xml
examples/src/main/java/...
, 당신은 당신의 서브 모듈을 표시합니다 :
는 다음 디렉토리 레이아웃이 같아야 방법 .예를 들어 다음 모듈 리딩은 다음 (물론, 이름과 버전에 대한 조정)로 시작합니다, "XY"와 artifactId를은 "
<parent>
<groupId>com.company.example</groupId>
<artifactId>xy</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>com.company.example</groupId>
<artifactId>xy-core</artifactId>
<version>1.0.0-SNAPSHOT</version>
어셈블리가 기본 프로젝트에서 실행되었는지 확인하려면 포함 빌드 구성에 다음 또한
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.1</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
것은, 테스트 클래스에 대한 별도의 단지를 구축 핵심/pom.xml 파일에 이것을 추가 :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
assembly.xml 자체 WI 그러면 다음과 같이 보일 것입니다 :
<assembly>
<id>assembly</id>
<formats>
<format>tar.gz</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<moduleSets>
<moduleSet>
<binaries>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
<outputDirectory>lib</outputDirectory>
</binaries>
</moduleSet>
</moduleSets>
</assembly>
저는 여기에 몇 가지 것들이 빠졌을 것입니다. 그러나 그것은 일반적인 생각입니다.
나는이 질문이 건설적이지 않다는 것에 동의하지 않는다. 나는 당신이 메이븐의 규칙 내에서 사용할 수있는 옵션으로 도움이되는 답변을 찾았다. 이것이 지나치게 공격적인 검토 일 수 있다고 생각하십시오. – cwash