You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

maven-assembly-plugin报错:尝试处理项目不存在的虚拟第二个assembly.xml

第二个assembly配置的来源

你看到的第二个非自定义的assembly配置是maven-assembly-plugin的内置预定义bin描述符,触发原因是你的项目POM中,maven-assembly-plugin的配置同时加载了两类描述符:

  • 你手动指定的自定义描述符../assembly.xml
  • 配置中保留了<descriptorRefs><descriptorRef>bin</descriptorRef></descriptorRefs>段落,触发了内置bin描述符的加载

两个描述符的id均为bin,对应日志中The assembly id bin is used more than once的警告。内置描述符要求将target/site目录下的站点文件打包到压缩包的docs路径,如果你没有提前执行mvn site命令生成对应目录的文件,内置描述符对应的打包任务就会找不到可打包的内容,最终抛出archive cannot be empty错误,此时你自定义描述符生成的tar.gz文件已经正常生成,但整体构建被标记为失败。

解决方案

永久修复(推荐)

修改项目POM中maven-assembly-plugin的配置,删除<descriptorRefs>相关的配置段落,仅保留你自定义描述符的配置即可,配置示例如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>3.3.0</version>
  <configuration>
    <descriptors>
      <!-- 仅保留你的自定义描述符路径 -->
      <descriptor>../assembly.xml</descriptor>
    </descriptors>
    <!-- 删除descriptorRefs相关配置 -->
  </configuration>
</plugin>

修改后重新执行mvn assembly:single即可正常完成构建。

临时修复

如果不想修改POM,执行命令时指定仅加载自定义描述符即可:

mvn assembly:single -Dassembly.descriptors=../assembly.xml

内容的提问来源于stack exchange,提问作者Toribio73

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 13:21:02