maven assembly打包zip报错 You must set at least one file.

Dear 丶 2022-12-20 12:41 338阅读 0赞

文章目录

    • 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插件配置如下:

  1. <plugin>
  2. <artifactId>maven-assembly-plugin</artifactId>
  3. <executions>
  4. <execution>
  5. <phase>package</phase>
  6. <goals>
  7. <goal>single</goal>
  8. </goals>
  9. <configuration>
  10. <finalName>${ project.artifactId}-${ project.version}-${ maven.build.timestamp}</finalName>
  11. <appendAssemblyId>false</appendAssemblyId>
  12. <descriptors>
  13. <descriptor>src/assembly/assembly-descriptor.xml</descriptor>
  14. </descriptors>
  15. </configuration>
  16. </execution>
  17. </executions>
  18. </plugin>

assembly文件如下:

  1. <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">
  2. <id>zip-assembly</id>
  3. <formats>
  4. <format>zip</format>
  5. </formats>
  6. <includeBaseDirectory>false</includeBaseDirectory>
  7. <fileSets>
  8. <!--scripts -->
  9. <fileSet>
  10. <directory>src/main/scripts</directory>
  11. <outputDirectory>scripts</outputDirectory>
  12. <includes>
  13. <include>*.sh</include>
  14. </includes>
  15. <fileMode>0755</fileMode>
  16. <lineEnding>unix</lineEnding>
  17. </fileSet>
  18. <fileSet>
  19. <directory>src/main/config</directory>
  20. <outputDirectory>config</outputDirectory>
  21. <includes>
  22. <include>app.properties</include>
  23. </includes>
  24. <lineEnding>unix</lineEnding>
  25. </fileSet>
  26. <fileSet>
  27. <directory>src/main/config</directory>
  28. <outputDirectory>/</outputDirectory>
  29. <includes>
  30. <include>apollo-portal.conf</include>
  31. </includes>
  32. <lineEnding>unix</lineEnding>
  33. </fileSet>
  34. <fileSet>
  35. <directory>target/classes</directory>
  36. <outputDirectory>/config</outputDirectory>
  37. <includes>
  38. <include>application-github.properties</include>
  39. <include>apollo-env.properties</include>
  40. </includes>
  41. </fileSet>
  42. <!--artifact -->
  43. <fileSet>
  44. <directory>target</directory>
  45. <outputDirectory>/</outputDirectory>
  46. <includes>
  47. <include>${project.artifactId}-*.jar</include>
  48. </includes>
  49. <fileMode>0755</fileMode>
  50. </fileSet>
  51. </fileSets>
  52. </assembly>

问题分析:
经过测试,发现报这个错,本质是因为你assembly配置的 fileSet中的文件一个都找不到,它没有东西能帮你打包成zip。

解决方案:
检查自己的写文件路径对不对。

我这里的原因是,pom.xml 中多了个 finalName, 生成jar命名就成了xxx.jar,我assembly配置的 fileSet的${project.artifactId}-*.jar匹配不上,导致无文件可打成zip,因而报错!

  1. <build>
  2. <finalName>xxx</finalName>

发表评论

表情:
评论列表 (有 0 条评论,338人围观)

还没有评论,来说两句吧...

相关阅读