当前位置: 首页 > 知识库问答 >
问题:

Proguard混淆在使用Maven的Jenkins构建中失败-无法读取classes.jar

何向荣
2023-03-14

我正在使用Jenkins在Linux box上构建一个Maven项目,并得到以下错误:

[proguard]错误:无法读取[/usr/lib/jvm/java-6-openjdk-amd64/classes/classes.jar](没有此类文件或目录)

我已经安装了JDK,并将JAVA_HOME变量设置为:/usr/lib/jvm/java-6-openjdk-amd64

但是,如果我看一下Jenkins的“System Information”部分,我会看到java Home的两个位置:

java.home:/usr/lib/jvm/java-6-openjdk-amd64/jre

java_home:/usr/lib/jvm/java-6-openjdk-amd64

当我在MacOS上运行项目时,proguard插件工作得很好,所以我知道它与我的项目设置无关。我在Jenkins中缺少什么或者Java是如何安装在我的服务器上的?

共有1个答案

宦正诚
2023-03-14

您正在使用proguard插件?在pom.xml中包含了以下内容吗?

<libs>
    <lib>${java.home}/Classes/classes.jar</lib>
</libs>

我猜,您的开发环境是一个mac box,而您的jenkins运行在一个linux box中。所以这就是问题所在。
以下设置可以在Linux中工作。如果您在mac中安装Oracle JDK1.7或1.8,它也可以。

<libs>
     <lib>${java.home}/lib/rt.jar</lib>
</libs>

我的观点是,问题的关键在于libs设置来自于使用apple java6的mac,而jenkins是在Linux上。

 类似资料:
  • ----maven-enforcer-plugin:1.0.1:enforce(default)@cli---添加ignore:org.eclipse.jetty.spdy.* ----maven-enforcer-plugin:1.0.1:enforce(enforce-bang-dependencies)@cli-- ---build-helper-maven-plugin:1.7:times

  • 我对混淆有问题。为了获得更好的想象力: JAVA代码 本机代码 在我想发布一个混淆版本之前,一切都很好。这个类中的Java类(例如)和方法的名称被proGuard重命名为“a”和“a()”(这可能并不总是相同的),但在本机代码中,方法和类的原始名称保持不变,因为它被硬编码为字符串,如下所示: ...有没有办法动态设置方法名?

  • 我正在努力解决JavaFX应用程序的模糊问题。以本项目为基础: Proguard配置文件:-dontoptimized-dontshrink 有人有JavaFX模糊处理的经验吗?

  • 我尝试在android studio中使用Proguard,但Proguard似乎没有混淆类名,例如,我的应用程序结构和配置: 和配置 但当我尝试在应用程序中触发异常时: ADB控制台中列出了异常: 只有方法被混淆了,MainActivity.class没有

  • 在序列化/反序列化过程中,我的项目在中实现了一个,用于保留对象的多态性状态。不管怎样,该项目在开发测试中工作得很好,但当它用proguard混淆发布并测试时,它就崩溃了。 我的Gson特定的proguard配置是: 我正在使用的打字适配器是: 任何来自开发者社区的帮助都将不胜感激。

  • 我已经为一个项目配置了SVN-Jenkins-Maven-Tomcat。小项目的每件事都很好。但当我试图构建包含大量JAR和包的实际项目时…它显示错误..找不到xxx包。我已经手动将依赖项JAR添加到本地maven存储库中。