[解決済み] Maven 3 でモジュールのバージョンとして project.parent.version を使用する際の警告
2023-06-15 17:19:32
質問
maven の複数モジュール プロジェクトで、各モジュールが常に親と同じバージョンを維持するようにしたい場合、私は通常、モジュールの pom.xml で次のようなことを行っています。
<parent>
<groupId>com.groupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.1-SNAPSHOT</version>
</parent>
<groupId>com.groupId</groupId>
<artifactId>artifactId</artifactId>
<packaging>jar</packaging>
<version>${project.parent.version}</version>
<name>name</name>
maven 3.0-alpha-5を使い始めてから、そうすると以下のような警告が出るようになりました。
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.groupid.artifactId:name:jar:1.1-SNAPSHOT
[WARNING] 'version' contains an expression but should be a constant. @ com.groupid.artifactId:name::${project.parent.version}, /Users/whaley/path/to/project/child/pom.xml
[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.
[WARNING]
私が知りたいのは、モジュールのバージョンを親のバージョンに結びつけることの本当の問題点があるとすれば、それは何なのでしょうか? それとも、project.parent.versionであるかどうかにかかわらず、任意の式がversion要素に使用されたときに一般的に警告される場合なのでしょうか。
どのように解決するのですか?
モジュールのバージョンを親のバージョンに結びつけることの本当の問題点があるとすれば、それは何なのか知りたいのです。それとも、project.parent.version であるかどうかに関係なく、任意の式が version 要素に使用されたときに一般的に警告されるケースなのでしょうか。
まあ、それはテストするのは簡単でしょう。気になったので、以下の pom を使ってやってみたところです。
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>parent</artifactId>
<groupId>com.mycompany</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.mycompany</groupId>
<artifactId>module</artifactId>
<version>${myversion}</version>
<name>module</name>
<url>http://maven.apache.org</url>
<properties>
<myversion>1.0-SNAPSHOT</myversion>
</properties>
...
</project>
そして、mavenは確かに文句を言っています。
[WARNING] 'version' contains an expression but should be a constant. @ com.mycompany:module:${myversion}, /home/pascal/Projects/maven-maven3-testcase/module/pom.xml
正直なところ、ここではmavenが正しいと思っています。
<version>
要素にプロパティを使用するのはあまり意味がなく (少なくとも project.version では)、maven がそれについて文句を言うのはいいことです。
また、サブモジュールで親pomのバージョンを使用したい場合。
を削除するだけです。
<version>
タグを削除してください。
を削除すれば、親からバージョンを引き継ぎます。現在行っていることは不要です。
関連
-
[解決済み] Mavenプロジェクトにローカルのjarファイルを追加する方法は?
-
[解決済み] Mavenに最新バージョンの依存関係を使用するように指示するにはどうすればよいですか?
-
[解決済み] mavenの強制アップデートを行うには?
-
[解決済み] mavenで単一のテストメソッドを実行する
-
[解決済み] Mac OS XでのMavenのインストール
-
[解決済み] intellijでmavenの依存関係階層を表示する方法
-
[解決済み] プラグインの実行がライフサイクル設定に含まれない(JBossas 7 EAR archetype)
-
[解決済み] Mavenの "リアクター "とは何ですか?
-
[解決済み] Maven。ライフサイクル vs フェーズ vs プラグイン vs ゴール [終了しました]。
-
[解決済み] mavenの依存関係のタイプ "bundle "の意味は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プラグインの実行がライフサイクル設定に含まれない(JBossas 7 EAR archetype)
-
[解決済み] Mavenからのコマンドライン引数をpom.xmlのプロパティとして渡す
-
[解決済み] Maven スナップショットリポジトリとリリースリポジトリの比較
-
[解決済み] repository tag under distributionManagement vs repositories?
-
[解決済み] GradleプロジェクトのmavenアーティファクトIDはどのように設定しますか?
-
[解決済み] ラインカバレッジとブランチカバレッジの違い
-
[解決済み] なぜpom.xmlのmodelVersionは必要で、常に4.0.0に設定されるのですか?
-
[解決済み] Intellij 14でMavenプロジェクトのウィンドウを表示する方法|アップデート:Mavenプロジェクトで右側の「タブバー」が表示されない
-
[解決済み] mavenの依存関係のタイプ "bundle "の意味は何ですか?
-
[解決済み] MavenのOut of Memoryビルドの失敗