2

Maven 3 以降、プラグインのバージョンを指定することを強くお勧めします。たとえば、(Java ターゲット バージョンを指定するために) maven-compiler-plugin を指定すると、バージョンが指定されていない場合、maven は文句を言います。

[WARNING] Some problems were encountered while building the effective model for com.example:ex1:jar:0.0.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 20, column 12
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.

ただし、これの論理は理解できます。

maven-compiler-plugin を指定しない場合、maven 3.0.4 の場合は 2.3.2 というデフォルト バージョンが取得されます。これは、通常の場合、プラグインのデフォルト バージョンを取得することを意味します。

質問: プラグインのデフォルト バージョンは、時間の経過とともに変化する可能性がありますか? たとえば、maven 4.x はコンパイラ プラグインの新しいデフォルト バージョンを使用する可能性があります。

この場合、ユーザーにバージョンの指定を強制する利点は何ですか? 多くの場合、pom.xml だけを見ても、どの Maven バージョンが使用されるか、つまりどの Maven プラグイン バージョンが使用されるかを事前に知ることは、とにかく予測不可能です。

この背後にあるロジックがわかりません。したがって、使用中のすべてのプラグインのバージョンを常に指定する必要があります (これは非常に面倒です)。

4

1 に答える 1

2

プラグインのデフォルト バージョンは、Maven のリリース パッケージの一部です。そのため、リリースごとに異なります。これは、Maven のバージョンを切り替えると、厄介な驚きが生じる可能性があることを意味します。Maven 開発者コミュニティは、これは悪い計画だと判断しました。ビルドの再現性を失うことなく、Maven のマイナー バージョンを変更できるはずです (もちろん、バグは除きます)。そのため、プラグインのバージョンをロックダウンすることを穏やかに奨励するために、この警告を入れました。

于 2013-02-06T14:12:50.970 に答える