3
MavenでのJavaバージョンの指定-プロパティとコンパイラプラグインの違い
私はmavenに精通していないので、マルチモジュールプロジェクトを実験しているときに、親maven pomのすべての子モジュールにjavaバージョンを指定するにはどうすればよいか疑問に思い始めました。今日まで、私はちょうど使用していました: <properties> <java.version>1.8</java.version> </properties> しかし、調査したところ、次のようにmavenコンパイラプラグインでJavaバージョンを指定できることもわかりました。 <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> そして、これをプラグイン管理タグにラップして、子pomsがこれを使用できるようにします。最初の質問は、プロパティとmavenコンパイラプラグインのJavaバージョンの設定の違いは何ですか? 明確な答えは見つかりませんでしたが、調査の過程で、次のようにjavaバージョンを指定することもできます。 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> これは、明示的に宣言しなくてもコンパイラプラグインが存在することを示唆しています。でのmvnパッケージ出力の実行 maven-compiler-plugin:3.1:compile (default-compile) @ testproj --- そして、私が宣言しなかった他のいくつかのプラグイン。これらのプラグインはデフォルトで、maven pomの非表示部分ですか?プロパティとmavenプラグイン構成要素のソース/ターゲットの設定に違いはありますか? 他のいくつかの質問は-どの方法を使用する必要がありますか(それらが等しくない場合)?マルチモジュールプロジェクトに最適なのはどれですか。pomで指定されたJavaバージョンがJAVA_HOMEで指定されたバージョンと異なる場合はどうなりますか?