2015-10-17 76 views
1

我試圖編譯Storm Starter與JDK 7爲什麼closure-maven-plugin沒有選擇正確的Java版本?

$ echo $JAVA_HOME                         [master] 
/opt/jdk1.7.0_80 

$ mvn -version 
Apache Maven 3.0.5 
Maven home: /usr/share/maven 
Java version: 1.7.0_80, vendor: Oracle Corporation 
Java home: /opt/jdk1.7.0_80/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.13.0-65-generic", arch: "amd64", family: "unix" 

$ mvn clean install -DskipTests=true 
       ... 
[INFO] --- clojure-maven-plugin:1.7.1:compile (compile-clojure) @ storm-core --- 
Compiling backtype.storm.LocalDRPC to /home/incubator-storm/storm-core/target/classes 

Exception in thread "main" java.lang.UnsupportedClassVersionError: backtype/storm/ILocalDRPC : Unsupported major.minor version 51.0, compiling:(backtype/storm/LocalDRPC.clj:17:1) 
Caused by: java.lang.UnsupportedClassVersionError: backtype/storm/ILocalDRPC : Unsupported major.minor version 51.0 

this線程,我使用的Java版本錯誤,我應該使用Java 7,但我的Java版本 7.所以我的直覺是,編譯時,closure-maven-plugin沒有選擇正確的Java版本。怎樣才能讓這個項目編譯?

+0

什麼'MVN輸出-version'? –

+0

加入問題^ – Jamie

回答

2

您需要確保$JAVA_HOME/bin(或至少1.7 java可執行文件)首先在您的PATH中,因爲它是插件所使用的。

使用指向JDK 1.7的JAVA_HOME,我可以通過在我的PATH中首先將路徑設置爲java(JDK 1.6目錄)來複制此問題。該clojure-maven-plugin代碼試圖確定這條道路和回落在當前環境中使用剛剛java/PATH

private String getJavaExecutable() throws MojoExecutionException { 

    Toolchain tc = toolchainManager.getToolchainFromBuildContext("jdk", //NOI18N 
                   session); 
    if (tc != null) { 
     getLog().info("Toolchain in clojure-maven-plugin: " + tc); 
     String foundExecutable = tc.findTool("java"); 
     if (foundExecutable != null) { 
     return foundExecutable; 
     } else { 
     throw new MojoExecutionException("Unable to find 'java' executable for toolchain: " + tc); 
     } 
    } 

    return "java"; 
    } 
+0

是的,這是關閉一個新的git克隆。我認爲我用不同版本的Java構建了'closure-maven-plugin',並且可能將其緩存在某處。下面是'mvn install -DskipTests'的錯誤輸出的鏈接:http://pastebin.com/MmhZVe4w – Jamie

+0

看起來像'clojure-maven-plugin' juse使用您當前環境中的任何內容,包括Clojure版本和JDK 。工具鏈中的某些內容只是回退到'PATH'中的''java'「命令,而不是轉到'JAVA_HOME/bin'。看起來這是247行的後備 - https://github.com/talios/clojure-maven-plugin/blob/clojure-maven-plugin-1.7.1/src/main/java/com/theoryinpractise/clojure/AbstractClojureCompilerMojo .java –

+0

好的,我運行了'sudo update-alternatives --install/usr/bin/java java $ JAVA_HOME/bin/java 0',後面跟着'sudo update-alternatives java'。我會在安裝完成後更新,但現在'mvn install'似乎運行良好:) – Jamie

相關問題