2009-07-28 1 views
6

私はJava 5と互換性があるはずのJavaプログラムで動作します。Java 6では許可されている実装済みのインタフェースメソッドでは@Overrideの注釈がありましたが、5ではできませんでした。 Eclipseは、5.0準拠に設定すると、@Overrideに正しくエラーメッセージを表示します。私は、これは実際にビルドを失敗させる必要があることを期待して修正Mavenはコンパイラプラグインの<source>タグを本当に尊敬しますか?

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

アムを:私のMavenのビルドは、しかし、私のPOMに次の設定を使用して、でも警告なしに実行されますか?それはなぜ、私は何ができるのですか?

答えて

5

これは実際にはJDKの問題であり、Mavenの問題ではありません。 @Overrideアノテーションは、1.6 javacへの-source 1.5フラグで失敗していません。それを試してみてください。それを失敗させる唯一の方法は、残念ながら、1.5 javacを使用することです。

申し訳ありませんが、HTH。

EDIT
は、私はこの問題に自分自身を走った、そしてそれは実際にポンポンの設定で見ている場合は、私も疑問に思いました。デバッグ出力をオンにすると(-Xはもう少し前です)、javacコマンドラインを標準出力に出力します。実際には、-source 1.5パラメータが使用されていることがわかります。

1

JDKが適切に機能していないため、私は、1.5コンパイラを使用する必要があります。

<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <verbose>true</verbose> 
     <fork>true</fork> 
     <executable>${JAVA_1_5_HOME}/bin/javac</executable> 
     <compilerVersion>1.5</compilerVersion> 
    </configuration> 
    </plugin> 
    ... 
</plugins> 

あなたは、あなたのプロジェクトでは、コンパイラまたはsettings.xmlの

<properties> 
    <JAVA_1_5_HOME>/path/to/1.5jdk</JAVA_1_5_HOME> 
</properties> 
へのパスを指定することができます:それはあなたが特定のコンパイラを使用する tweaking the maven-compiler-plugin設定等によりパスでふざける避けることができることを指摘する価値があります
+0

良い点もあります。 –

関連する問題