我在名为zip.xml
的文件夹中有一个assembly
:
<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>archive</id>
<baseDirectory>/</baseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
</fileSet>
<fileSet>
<directory>src/main/resources/</directory>
<includes>
<include>plugin-descriptor.properties</include>
</includes>
</fileSet>
</fileSets>
</assembly>
使用mvn clean -U -DskipTests package assembly:assembly
构建项目后,我注意到只有jar
文件被复制并压缩到存档。
如何将properties
文件存档在zip文件中?想要的zip应该在root
答案 0 :(得分:1)
您应该定义<files>
元素而不是<fileSets>
,因为您要复制特定的单个文件而不是目录。在这种情况下,您要复制:
${project.build.directory}/${project.build.finalName}.${project.packaging}
到ZIP的根目录src/main/resources/plugin-descriptor.properties
放入ZIP的根目录您当前的配置错误,因为您声明要${project.build.directory}
下的所有条目,这不是您想要的,因为您只对最终的JAR感兴趣。另外,使用/
作为基本目录有点奇怪;最好说我们不想要一个<includeBaseDirectory>false</includeBaseDirectory>
示例配置为:
<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>archive</id>
<includeBaseDirectory>false</includeBaseDirectory>
<formats>
<format>zip</format>
</formats>
<files>
<file>
<source>${project.build.directory}/${project.build.finalName}.${project.packaging}</source>
<outputDirectory>/</outputDirectory>
</file>
<file>
<source>${basedir}/src/main/resources/plugin-descriptor.properties</source>
<outputDirectory>/</outputDirectory>
</file>
</files>
</assembly>