我正试图在./target/dist
文件夹中输出运行项目所需的所有文件。我想在准备程序集时捆绑JRE。JRE位于我的项目的基本目录中,包含在一个名为jre.zip
的zip文件中。
如何在./target/dist
文件夹中解压缩./jre.zip
这是我的程序集的XML。
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>dist</id>
<formats>
<format>dir</format>
</formats>
<baseDirectory>./</baseDirectory>
<fileSets>
<fileSet>
<directory>./</directory>
<outputDirectory>./jre</outputDirectory>
<excludes>
<exclude>*/**</exclude>
</excludes>
</fileSet>
</fileSets>
<files>
<file>
<source>${project.build.directory}/${project.build.finalName}.jar</source>
<destName>${artifactId}.jar</destName>
<outputDirectory>./</outputDirectory>
</file>
</files>
</assembly>
虽然您可以使用Maven Assembly插件来解包依赖项,但我很担心它无法使用jre。。。。
我建议你在执行类似的Assembly插件之前打开jre
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>prepare</id>
<phase>validate</phase>
<configuration>
<tasks>
<echo message="prepare phase" />
<unzip src="jre.zip" dest="target/jre"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>