执行 .jar 时出现无效签名文件错误
运行包含对外部库(例如 bouncy castle)依赖项的 .jar 文件时),用户可能会遇到以下错误:
java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
这个错误经常出现表示 jar 的数字签名存在问题。
Maven-Shade-Plugin 用户的解决方案
对于使用 maven-shade-plugin 创建着色 uber-jar 的用户,解决方案在于从着色过程中排除清单签名文件。将以下行添加到插件的配置中:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <!-- Additional configuration. --> </configuration> </plugin>
通过排除这些文件,阴影的 uber-jar 将不会包含冲突的签名信息,从而解决“无效签名文件”错误。
以上是如何修复着色 JAR 文件中的'清单主要属性的签名文件摘要无效”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!