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

标签 java linux maven jenkins proguard

我正在使用 Jenkins 在 Linux 机器上构建 Maven 项目并收到以下错误:

[proguard] Error: Can't read [/usr/lib/jvm/java-6-openjdk-amd64/Classes/classes.jar] (No such file or directory)

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

但是,如果我查看 Jenkins 的“系统信息”部分,我会得到两个 java 主页位置:

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

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

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

最佳答案

您正在使用混淆器插件吗? 您是否在 pom.xml 中包含以下内容?

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

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

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

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

关于java - Proguard 混淆在使用 Maven 的 Jenkins 构建中失败 - 无法读取 classes.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075238/

相关文章:

java - Flume的HttpSource : is the Jetty server multithread?

java - 使用 utf-8 从文件中读取 XML

c - linux附加文件

java - 使用 Spring boot maven 项目作为依赖项

java - 干净的代码 - 应该在哪里应用 @Autowired?

java - 使用 EasyMock 模拟抽象基类

源代码管理上的 python 虚拟环境

c - linux C语言。 setjmp longjmp 报警

Maven:为什么它包含看似损坏的schemaLocation?

javascript - frontend-maven-plugin 可以使用 node,npm 已经安装了吗?