4

次のPOMでmaven-compiler-pluginの詳細を指定することが必須か教えてください:

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

はいの場合、なぜそうなのか、私はそれが何をするのか理解していますが、なぜそれが必要なのかわかりませんか? Mavenでjavacを呼び出す他の方法はありませんか?

4

2 に答える 2

7

maven-compiler-pluginの詳細を指定する必要があることを教えてください。

いいえ。ただし、コンパイルにはJava1.3などの石器時代のものを使用します。

はいの場合、なぜそうなのか、私はそれが何をするのか理解していますが、なぜそれが必要なのかわかりませんか?

答えはいいえだ'。しかし、ここに理由があります。新しいコードでJava1.3を使用してコンパイルしたくないことは確かです。Java5のすべての新機能が必要です。:)したがって、すでに雑然としたPOMにこれらの余分な行を追加する必要があります。

Mavenでjavacを呼び出す他の方法はありませんか?

ありません。ただしmvn compile、このブロックがなくても、または他のコマンドは機能します。ただし、ソースコードにJava 5にあるが、以前のバージョンにはない高度なものがある場合、コンパイルは失敗します。


編集1

JDK 5を使用している場合、どのように1.3にコンパイルされますか?

さて、Javaコンパイラでそうするように設定するオプションがあります。ここでJavaコンパイラオプションを参照してください:http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/javac.html

sourceetalを古いバージョンに設定できると書かれています。

于 2012-07-19T09:38:16.597 に答える
4

maven-compiler-pluginセクションはオプションです。pom.xml にそのセクションを含めない場合、デフォルトが適用されます。

デフォルトのコンパイラは javac で、Java ソースのコンパイルに使用されます。また、現在、Maven を実行する JDK に関係なく、デフォルトのソース設定は 1.5 であり、デフォルトのターゲット設定は 1.5 であることに注意してください。

私の個人的な好みは、以下の理由から明示的な構成を持つことです。

  1. プラグインのバージョンが変更されると変更される可能性があるため、外部のデフォルトに依存することは良い考えではないと思います。
  2. 新しいプロジェクトを Java 1.5 用にコンパイルしたいとは思わない
于 2012-07-19T09:37:26.650 に答える