2011-09-29 66 views
30

我已經將一個現有的Maven項目導入到Eclipse IDE中。 我在它修改了一些代碼,它編譯成功, 我使用的Java 1.6作爲編譯器 ,當我試圖運行Maven乾淨安裝-XMaven:錯誤:在-source 1.3中不支持泛型,我正在使用1.6

它給下面的錯誤

無法解析錯誤消息:(使用-source 5或更高來啓用泛型) D:\ bayer \ util \ src \ main \ java \ com \ tata \ bayer \ util \ BrokerageCalendar.java:179:錯誤:泛型不支持 - 來源1.3

private static Hashtable<String, Boolean> nyseHolidays = new Hashtable<String, Boolean>(); 
         ^

could not parse error message: (use -source 5 or higher to enable generics) 
D:\bayer\util\src\main\java\com\tata\bayer\util\APIHttpXmlClient.java:27: error: generics are not supported in -source 1.3 
         Class<? extends APIResponse> responseClass) { 
         ^

請提出任何想法如何解決這就是?

+0

您使用的是哪個版本的Maven,並且您是否正確配置了JAVA_HOME – khmarbaise

回答

42

你有沒有聲明要使用的Java 1.6在你的項目的pom.xml?:

<build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.3.2</version> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
         <compilerArgument></compilerArgument> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
+0

不是finalName。 – khmarbaise

+0

@AndreiBodnarescu給你。 finalName與這個問題無關。 –

+1

我們做了這種方式, 1.6 org.apache.maven.plugins 行家編譯-插件<結構> 1.6 1.6 1.6 1。6 我們正在使用Java 1.7和行家作爲 阿帕奇Maven的2.2.1(r801777; 2009-08-07 00:46:01 + 0530) Java主:C:\軟件\ Java \ jdk1.7.0 \ jre –

5

您必須配置Maven的編譯器插件。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
    <source>1.6</source> 
    <target>1.6</target> 
    </configuration> 
</plugin> 
+0

值得注意的是編譯器插件> = 2.3的默認值是1.5。 Maven 2.2.1默認爲編譯器插件2.0.2,但您可以按照描述覆蓋它。 –

+2

(順便說一句,這個例子的版本有一個錯字,但是你不能在stackoverflow上進行1個字符的編輯:) –

26

配置Maven編譯器插件可以解決這個問題。原來問題是由Ubuntu存儲庫中的Maven3軟件包引起的。另一個解決方法是從Apache網站下載Maven 3,該網站使用更新的Compiler插件。

我想知道爲什麼當文檔聲明默認Java源代碼是1.5時發生這種情況。要了解MVN正在使用你的編譯器插件的使用:

mvn help:effective-pom 

我的Maven編譯器插件是2.0.2即使我使用Maven 3.0.4從Ubuntu的軟件包。 當我使用Apache的Maven 3.0.4運行相同的命令時,我有一個插件版本2.3.2,它按照預期默認爲Java 1.5。

+6

對於Ubuntu的+1回答 – yochannah

+0

這對我來說也是問題,當使用Maven包時由Ubuntu提供。按照建議從Apache進行安裝,問題就解決了。 –

1

我寧願這樣:

<properties> 
    <maven.compiler.source>1.5</maven.compiler.source> 
    <maven.compiler.target>1.5</maven.compiler.target> 
    ... 
3

,不涉及修改POM是指定在命令行的源和目標的另一種方法:

注意,這一般可以避免,因爲構建不能保證以這種方式重複。

相關問題