maven assembly打包zip报错 You must set at least one file.
文章目录
- maven assembly打包Error creating assembly archive pack: You must set at least one file.
maven assembly打包Error creating assembly archive pack: You must set at least one file.
问题背景:
今天maven 使用assembly插件打包spring boot项目到zip 报错
Error creating assembly archive pack: You must set at least one file.
pom插件配置如下:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${ project.artifactId}-${ project.version}-${ maven.build.timestamp}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/assembly-descriptor.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
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>zip-assembly</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<!--scripts -->
<fileSet>
<directory>src/main/scripts</directory>
<outputDirectory>scripts</outputDirectory>
<includes>
<include>*.sh</include>
</includes>
<fileMode>0755</fileMode>
<lineEnding>unix</lineEnding>
</fileSet>
<fileSet>
<directory>src/main/config</directory>
<outputDirectory>config</outputDirectory>
<includes>
<include>app.properties</include>
</includes>
<lineEnding>unix</lineEnding>
</fileSet>
<fileSet>
<directory>src/main/config</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>apollo-portal.conf</include>
</includes>
<lineEnding>unix</lineEnding>
</fileSet>
<fileSet>
<directory>target/classes</directory>
<outputDirectory>/config</outputDirectory>
<includes>
<include>application-github.properties</include>
<include>apollo-env.properties</include>
</includes>
</fileSet>
<!--artifact -->
<fileSet>
<directory>target</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>${project.artifactId}-*.jar</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
</fileSets>
</assembly>
问题分析:
经过测试,发现报这个错,本质是因为你assembly配置的 fileSet中的文件一个都找不到,它没有东西能帮你打包成zip。
解决方案:
检查自己的写文件路径对不对。
我这里的原因是,pom.xml 中多了个 finalName, 生成jar命名就成了xxx.jar,我assembly配置的 fileSet的${project.artifactId}-*.jar匹配不上,导致无文件可打成zip,因而报错!
<build>
<finalName>xxx</finalName>
还没有评论,来说两句吧...