Zoe*_*Zoe 7 maven-2 maven-assembly-plugin
我正在尝试创建一个包含多个配置文件和目录的项目的可分发zip,以及我项目的可执行jar.在Maven程序集插件中,我发现了如何使可执行jar具有完全依赖性.但是,我一直无法弄清楚如何在jar后创建zip文件.理想情况下,我想将jar移动到已经拥有正确文件和子目录的目录,然后立即压缩整个文件.有没有办法做到这一点?
编辑:
我现在有罐子建筑,还有一个简洁的拉链.我的程序集文件如下所示:
<assembly>
<id>financials-import-server</id>
<formats>
<format>zip</format>
</formats>
<dependencySets>
<dependencySet>
</dependencySet>
</dependencySets>
<files>
<file>
<source>target/import-server-1.0.0-SNAPSHOT.jar</source>
<destName>service.jar</destName>
<outputDirectory>/</outputDirectory>
</file>
</files>
</assembly>
Run Code Online (Sandbox Code Playgroud)
包括我需要的其他文件,比如配置文件或shell脚本,我感觉很舒服.我还有几个问题.如何在zip中创建空目录?另外,如何更改生成的文件的名称?
谢谢您的帮助!
首先,使用Maven JAR插件创建可执行的JAR.
然后,配置程序集以包含所需的所有文件(最终可以添加将启动应用程序的run.bat/ run.sh文件),以及所有依赖项.
最后,将程序集创建绑定到包中的目标pom.xml:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<descriptors>
<descriptor>/path/to/my-assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
...
Run Code Online (Sandbox Code Playgroud)
这样,您只需要运行一个Maven命令mvn clean install,例如,编译项目,然后创建ZIP包.
如果我的答案不符合您的需求,请不要犹豫,更新您的问题,您也可以提供您的当前assembly.xml和pom.xml......
编辑
关于你的更新:
我不认为程序集会让你创建一个空目录.一个想法是放置一个空文件(或者readme.txt例如)并将目录包含在最终的ZIP中.例如,在我的项目中,我想要一个logs/目录,所以logs/我的项目中有一个目录,它只包含一个readme.txt文件:
<fileSets>
<fileSet>
<directory>../my-package/logs</directory>
<outputDirectory>logs/</outputDirectory>
</fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)
对于创建的ZIP的名称,您可以在以下位置指定它pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptors>
<descriptor>my-assembly.xml</descriptor>
</descriptors>
<finalName>TheName</finalName>
Run Code Online (Sandbox Code Playgroud)
如果我是正确的,程序集将使用此名称,添加文件中ID定义的名称assembly.xml,并使用适合指定格式的前缀.
| 归档时间: |
|
| 查看次数: |
10092 次 |
| 最近记录: |