You need to enable JavaScript to run this app. Java/Maven新手配置pulsar依赖打assembly包报Invalid signature file错
优惠活动
大模型
产品
解决方案
定价
更多

Java/Maven新手配置pulsar依赖打assembly包报Invalid signature file错

问题根源

报错Invalid signature file digest for Manifest main attributes的触发逻辑非常明确:

  • maven-assembly插件生成jar-with-dependencies格式的胖包时,会把所有依赖JAR的类文件、元数据全部抽取合并到最终单个JAR中
  • 你的pulsar 2.7.0依赖链中包含了带官方发布签名的第三方组件,这类组件的JAR包META-INF目录下会留存.SF、.DSA、.RSA、.EC后缀的签名校验文件
  • 当前配置未对这类签名文件做排除,这些元数据被打包进最终JAR后,会和自定义的Manifest主属性产生签名摘要校验冲突,直接触发打包失败
  • 另外你的pom未显式指定maven-assembly-plugin的版本,实际拉取的2.2-beta-5是老旧beta测试版本,本身没有内置签名文件过滤逻辑,进一步放大了这个问题。
可落地修复步骤

直接对pom.xml中的maven-assembly-plugin配置做三处调整即可,不需要修改现有依赖坐标:

  1. 给插件显式指定3.6.0稳定版本,替代自动拉取的2.2-beta-5旧测试版
  2. 在打包配置中新增规则,排除所有来源JAR中的签名类元数据文件
  3. 替换旧版专属的assembly打包goal为3.x版本对应的single目标,适配新版插件的执行逻辑

调整后的完整插件配置如下,直接替换你原有pom里的同插件块即可:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.6.0</version>
    <configuration>
        <appendAssemblyId>false</appendAssemblyId>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>org.example.test.ExclamationFunction</mainClass>
            </manifest>
        </archive>
        <!-- 排除所有依赖中的签名校验元数据 -->
        <excludes>
            <exclude>META-INF/*.SF</exclude>
            <exclude>META-INF/*.DSA</exclude>
            <exclude>META-INF/*.RSA</exclude>
            <exclude>META-INF/*.EC</exclude>
        </excludes>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

调整完成后执行mvn clean package重新触发打包流程即可,不需要修改pulsar相关的依赖配置。

补充说明:这类签名报错的排查不需要逐一对依赖做逆向校验,只要是打带依赖的胖包场景,只要在打包配置里把META-INF下的四类签名后缀文件排除,就能覆盖绝大多数同类场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 15:45:05