gpt4 book ai didi

java - 如何使用 maven- assembly-plugin 从 dependencySet 中删除 META-INF ?

转载 作者:行者123 更新时间:2023-12-02 09:31:11 24 4
gpt4 key购买 nike

我正在使用 maven-assemble-plugin 来构建我的部署包。我们的依赖 Jar 之一是 bcprov-jdk15on.jar ,它是一个签名的 JAR。我在 maven- assembly-plugin 之上使用 Proguard Shrinking 步骤。 Proguard 基本上从 bcprov-jdk15on.jar 中删除了一些类,这导致 JVM 加载类时 JAR 签名验证失败。

我收到此错误堆栈跟踪

java.lang.SecurityException: SHA-256 digest error for org/bouncycastle/tsp/TSPException.class
at sun.security.util.ManifestEntryVerifier.verify(ManifestEntryVerifier.java:223) ~[?:1.8.0_201]
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:243) ~[?:1.8.0_201]
at java.util.jar.JarVerifier.update(JarVerifier.java:230) ~[?:1.8.0_201]
at java.util.jar.JarVerifier$VerifierStream.read(JarVerifier.java:484) ~[?:1.8.0_201]
at sun.misc.Resource.getBytes(Resource.java:124) ~[?:1.8.0_201]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:463) ~[?:1.8.0_201]
at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[?:1.8.0_201]
at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[?:1.8.0_201]
at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_201]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_201]
at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_201]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_201]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_201]

我可以简单地在 Proguard 配置上使用 keep 选项来完成这项工作(没有签名验证错误)。然而,由于这个 JAR 的大小相当大 (4MB),我想实际将它用于这个特定的 bcprov-jdk15on.jar

有没有办法使用 maven-assemble-plugin 来取消签名依赖项 jar?

根据this ,我需要简单地删除 list 文件和所有签名相关文件(.SF、.DSA)?有没有办法使用 maven- assembly-plugin 从 dependencySets 中排除 META-INF 文件夹?

谢谢。

最佳答案

这对于 Maven 程序集插件来说是不可能的。

来自文档:

If your project wants to package your artifact in an uber-jar, the assembly plugin provides only basic support. For more control, use the Maven Shade Plugin.

但是,如果您不想使用阴影插件 - 抱歉,您就陷入困境了。

关于java - 如何使用 maven- assembly-plugin 从 dependencySet 中删除 META-INF ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57955560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com