2015-04-01 46 views
1

一切似乎都正確,但它不起作用。Maven - 使用Java 1.7的無效目標版本1.7

$ sudo mvn clean package 
... 
[INFO] Compilation failure 
Failure executing javac, but could not parse the error: 
javac: invalid target release: 1.7 

版本:

$ mvn -v 
Apache Maven 2.2.1 (r801777; 2009-08-06 20:16:01+0100) 
Java version: 1.7.0_75 
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre 

$ java -version 
java version "1.7.0_75" 
Java(TM) SE Runtime Environment (build 1.7.0_75-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode) 

$ echo $JAVA_HOME 
/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/ 

的pom.xml:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.0.2</version> 
    <configuration> 
     <source>1.7</source> 
     <target>1.7</target> 
    </configuration> 
</plugin> 

爲了記錄在案:

$ /usr/libexec/java_home 
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home 

但我不認爲這是問題。

任何想法?

+0

的答案是正確的。只需添加一些信息:Java 7於2011年7月28日發佈。maven-compiler-plugin 2.0.2版的日期爲2007年2月13日。請參見問題? – Seelenvirtuose 2015-04-01 11:41:12

+0

爲什麼使用'sudo mvn ...'而不是簡單的'mvn clean package'? – khmarbaise 2015-04-01 11:44:18

+0

你爲什麼使用Maven 2.2.1?提示:http://mail-archives.apache.org/mod_mbox/maven-announce/201503.mbox/%3C20150320213920.6AE4B17423%40minotaur.apache.org%3E – khmarbaise 2015-04-01 11:51:16

回答

0

mvn clean刪除target只讀的文件夾。
解決方法:使用sudo對不對?除了sudo不再通過讀取你的變量或路徑,但那些超級用戶

sudo mvn -v的現在顯示的Java 1.6

非常感謝khmarbaise

1

嘗試更新編譯器插件。版本3.3是最新的。如果這樣做沒有幫助嘗試使用Maven 3+

+0

相同的錯誤,不同的說法:「在線程中的異常」main「java.lang.UnsupportedClassVersionError:org/apache/maven/cli/MavenCli:Unsupported major.minor version 51.0' – Mehdiway 2015-04-01 13:36:44

+0

所以它看起來像'org。 apache.maven.MavenCli'用java7編譯,但你想用java6或更低版本運行它。請檢查你的'JAVA_HOME' env變量是否是你的項目中的某個地方。您還可以編輯'mvn'腳本來打印執行的命令來構建您的項目。' – 2015-04-01 15:58:35

0

您必須設置配置maven-compiler-plugin這樣的:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.3</version> 
    <configuration> 
     <source>1.7</source> 
     <target>1.7</target> 
    </configuration> 
</plugin> 

最好是一個pluginManagement區域內進行配置。