【问题标题】:IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/xxx.jar'. using yguardIllegalStateException:无法打开嵌套条目“BOOT-INF/lib/xxx.jar”。使用 yguard
【发布时间】:2020-06-25 23:26:54
【问题描述】:

我正在努力使用 yguard 和 gradle 脚本解决 Spring Boot jar 混淆问题。但经过长时间的努力,直到现在还没有成功。

谁能给我一些好的文档或示例

混淆适用于普通 jar ,但在添加 spring boot jar 后会出现很多问题。 我没有混淆 org(boot jar 中的 spring boot loader 类)文件夹。 我收到错误...

Caused by: java.lang.IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/HikariCP-3.4.2.jar'. It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file

【问题讨论】:

    标签: java spring-boot gradle obfuscation yguard


    【解决方案1】:

    原因:java.lang.IllegalStateException:无法打开嵌套条目“BOOT-INF/lib/HikariCP-3.4.2.jar”。 已压缩,嵌套jar文件必须不压缩存储。请检查用于创建可执行 jar 文件的机制

    根据您的高亮错误消息,我建议配置不压缩 jar。

    jar 和 war 插件有一个 entryCompression 属性。如果设置为 ZipEntryCompression.STORED,存档的条目将保持未压缩状态。

    示例:

    jar {
         entryCompression = ZipEntryCompression.STORED
    }
    

    来自Gradle API Documentation

    存档条目的压缩级别。如果设置为 ZipEntryCompression.DEFLATED(默认值),则使用 DEFLATE 算法压缩每个条目。如果设置为 ZipEntryCompression.STORED,存档的条目将保持未压缩状态。

    【讨论】:

    • @Slok 更新了Gradle 如何允许您配置压缩的答案。
    猜你喜欢
    • 2019-10-25
    • 1970-01-01
    • 2019-08-10
    • 2018-11-17
    • 2015-02-03
    • 2018-01-26
    • 2016-04-04
    • 2017-02-17
    • 1970-01-01
    相关资源
    最近更新 更多