2012-08-22 46 views
2

我使用詹金斯建立在Linux機器上Maven項目,並收到以下錯誤::Progaurd混淆未能在詹金斯生成使用Maven的 - 無法讀取classes.jar

[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 home的位置:

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

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

當我在MacOS上運行該項目時,progaurd插件完美地工作,所以我知道它與我的項目設置無關。 Jenkins中缺少的東西,或者我的服務器上安裝了Java?

+0

找到java安裝位置下的classes.jar並相應地指定您的JAVA_HOME。 – Drona

+0

我無法在任何地方找到classes.jar?如果我運行:'sudo apt-get install sun-java6-jdk',我得到零更新 –

回答

0

您正在使用proguard插件嗎? 您是否在pom.xml中包含以下內容?

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

我想,你的開發環境是一個mac盒子,你的jenkins運行在一個linux盒子裏。 所以這就是問題所在。
以下設置可以在linux中工作。如果您在Mac中安裝Oracle Jdk 1.7或1.8,它也可以。

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

我的觀點是,這個問題的關鍵是,庫設置爲從MAC與蘋果的Java6工作,而詹金斯在Linux上。