두 개의 폴더가 포함 된 zip 파일을 만들려고합니다. 각 폴더에는 pom 내 특정 종속성의 플러그인이 포함됩니다. 현재 올바른 구조를 만들 수 있지만 예를 들어 첫 번째 종속성의 항아리가 두 번째 종속성의 항아리에 들어 가지 않도록하고 싶습니다. 다음과 같이 내 현재 치어 구조는 다음과 같습니다메이븐 어셈블리 내에서 jar의 모든 종속성 제거
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>PARENT-GROUP</groupId>
<artifactId>PARENT-ARTIFACT</artifactId>
<version>0.2.0-SNAPSHOT</version>
</parent>
<groupId>GROUP-ID</groupId>
<artifactId>ARTIFACT-ID</artifactId>
<properties>
<main.project>MAIN-PROJECT</main.project>
<plugin.version>0.0.1-SNAPSHOT</plugin.version>
<plugin.artifact>PLUGIN-ID</plugin.artifact>
</properties>
<dependencies>
<dependency>
<groupId>PLUGIN-GROUP</groupId>
<artifactId>${plugin.artifact}</artifactId>
<version>${plugin.version}</version>
</dependency>
<dependency>
<groupId>SECOND-DEPENDENCY</groupId>
<artifactId>SECOND-ARTIFACT-ID</artifactId>
<version>${project.parent.version}</version>
</dependency>
</dependencies>
<build>
<finalName>${main.project}-${project.parent.version}</finalName>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>${project.basedir}/src/zip.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>
</project>
바와 같이 나는 점점 오전 치어 내에서 두 개의 종속성이 볼 수 . 내가 갖고 싶은 출력은 다음과 같은 폴더 구조입니다. main \ lib : 두 번째 종속성 jar가 포함되어 있습니다. 두 번째 종속성 jar는 모두 같은 폴더 내에 있습니다. main \ plugin \ plugin : 모든 첫 번째 종속성 (플러그인과 모든 종속성)이 포함되어 있습니다. 두 폴더 모두 첫 번째 종속성을 포함해서는 안되며 그 반대도 마찬가지입니다. 지금까지 나는 다음과 같은 조립 XML
<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>release</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<unpack>false</unpack>
<useProjectArtifact>false</useProjectArtifact>
<excludes>
<exclude>
*:${plugin.artifact}
</exclude>
</excludes>
</dependencySet>
<dependencySet>
<outputDirectory>/plugins/${plugin.artifact}-${plugin.version}/${plugin.artifact}-${plugin.version}</outputDirectory>
<unpack>false</unpack>
<useProjectArtifact>false</useProjectArtifact>
<excludes>
<exclude>
*:SECOND-ARTIFACT-ID
</exclude>
</excludes>
</dependencySet>
</dependencySets>
</assembly>
때우기이 나는 각각의 종속성을 제외하는 더 나은 방법이 있는지 알고 싶습니다 나에게 쓰기 폴더 구조를 제공하지만, 모두의 종속성을 포함 항아리를 자동으로 하나씩 제외하는 것이 아니라 자동으로 처리합니다.