当前,我可以创建一个包含我的jar和其他文件的tar,但是由于jar-with-dependancies是在tar文件之后构建的,因此不包括在内。如何使Maven首先构建具有依赖关系的jar,以便将其包含在tar中?
pom:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<descriptors>
<descriptor>src/assembly/bin.xml</descriptor>
</descriptors>
<finalName>JAR-NAME-${project.version}</finalName>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
bin.xml:
<assembly>
<id>bin</id>
<formats>
<format>tar.gz</format>
</formats>
<fileSets>
<fileSet>
<directory>target</directory>
<outputDirectory>bin</outputDirectory>
<includes>
<include>JAR-NAME-*.jar</include>
</includes>
</fileSet>
<fileSet>
// Unrelated files
</fileSet>
<fileSet>
// Unrelated files
</fileSet>
</fileSets>
</assembly>
好吧,看起来您可以通过将两个步骤分成自己的执行标签来控制构建的顺序,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>JAR-NAME-${project.version}</finalName>
</configuration>
</execution>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/bin.xml</descriptor>
</descriptors>
<finalName>JAR-NAME-${project.version}</finalName>
</configuration>
</execution>
</executions>
</plugin>