首页 > 解决方案 > 是什么导致 jarsigner 覆盖 MANIFEST.MF

问题描述

问题是为什么 jarsigner 有时会覆盖 MANIFEST.MF 文件,而不是仅仅将签名条目附加到正在签名的 jar 中的现有 MANIFEST.MF 文件中。

注意:我将此作为一个开放式问题发布,并将针对我遇到的导致此问题的一种情况提供答案或观察。如果还有其他可能发生这种情况的情况或情况,希望其他人会扩展发布的问题。

标签: jarsignermanifest.mf

解决方案


呃,我自己的 2 美分就是简单地将 jarsigner 插件升级到版本3.0.0解决了问题(原始清单条目保持不变)

在 pom.xml 中:

...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jarsigner-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>sign</id>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <keystore>mykeystore.jks</keystore>
                    <alias>myalias</alias>
                    <storepass>password</storepass>
                    <keypass>password</keypass>
                </configuration>
            </plugin>
...

当然,其他问题可能仍然存在 - 例如在我的情况下仍然抛出 ClassNotFoundException - 因为事实证明有一些 bouncycastle .SF 和 .DSA 文件包含在我的 JAR 的 META-INF 文件夹中,这些文件是从 bouncycastle 签名的 JAR 中携带的插件 - 它们干扰了我后来使用 jarsigner 插件进行的签名,导致在运行生成的 jar 时出现此错误java -jar myjar.jar


推荐阅读