2011-09-29 13 views
30

Eclipse IDEに既存のMavenプロジェクトをインポートしました。 私はコンパイラ としてのJava 1.6を使用していますが、私は次のエラーにMaven:エラー:-sourceでジェネリックがサポートされていません。1.3、1.6を使用しています

を与えて、そのが解析できませんでした-X

をインストールMavenのクリーンを実行しようとしていたときに 、それは正常にコンパイル、それにいくつかのコードを変更しましたエラーメッセージ:ジェネリックを有効にするには、-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

は、あなたがあなたのプロジェクトのpom.xmlでJava 1.6を使用することを宣言したの?:

<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 のmaven-コンパイラプラグイン<設定> 1.6 1.6 1.6をこのような方法をとっています 1。 Java 1.7とmavenを として使用しています。Apache Maven 2.2.1(r801777; 2009-08-07 00:46:01 + 0530) Javaホーム:c:\ Softwares \ 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 Compiler Pluginを設定すると問題が解決されます。問題は、UbuntuリポジトリのMaven3パッケージが原因であることが判明しました。もう1つの修正点は、より最新のCompilerプラグインを使用するApache WebサイトからMaven 3をダウンロードすることです。

ドキュメントにデフォルトのJavaソースが1.5であると書かれているときに、なぜこのようなことが起こったのかを知りたいと思っていました。 MVNは、あなたのコンパイラプラグインを使用するために使用しているかを確認するには:私はUbuntuのパッケージからのMaven 3.0.4を使用していたにもかかわらず、

mvn help:effective-pom 

私のMavenコンパイラプラグインが2.0.2でした。 ApacheからMaven 3.0.4を使用して同じコマンドを実行すると、プラグインバージョン2.3.2がデフォルトでJava 1.5になります。これがなければならないこと

注:

<properties> 
    <maven.compiler.source>1.5</maven.compiler.source> 
    <maven.compiler.target>1.5</maven.compiler.target> 
    ... 
+6

+1 Ubuntuの回答 – yochannah

+0

Mavenパッケージを使用すると、これは私にとっても問題でしたUbuntuから提供されています。 Apacheからインストールし、問題は解決しました。 –

1

このようにビルドの再現性を保証することはできないため、一般的に避けてください。

3

ポンポンを変更関与していないもう一つの方法は、コマンドラインでのソースとターゲットを指定することです:私はこれを好む

関連する問題