親モジュールでMavenプラグインゴールを実行し、子モジュールでは実行しない
2023-10-21 15:14:18
質問
マルチモジュールの maven プロジェクトがあります。 buildnumber-maven-plugin を定義するプロファイルを使用し、ビルド番号をインクリメントして、それをソース管理にチェックインします。
親であるpom.xmlでプラグインを定義すると、すべての子ビルドでも実行されます。
以下は、私の親のpom.xmlです。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.webwars</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<properties>
<buildNumber.properties>${basedir}/../parent/buildNumber.properties</buildNumber.properties>
</properties>
<version>1.0-SNAPSHOT</version>
<name>Parent Project</name>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<buildNumberPropertiesFileLocation>${buildNumber.properties}</buildNumberPropertiesFileLocation>
<getRevisionOnlyOnce>true</getRevisionOnlyOnce>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<format>{0, number}</format>
<items>
<item>buildNumber</item>
</items>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>checkin</goal>
</goals>
</execution>
</executions>
<configuration>
<basedir>${basedir}</basedir>
<includes>buildNumber.properties</includes>
<message>[Automated checkin] of ${basedir} Build version: ${major.version}.${minor.version}.${buildNumber}</message>
<developerConnectionUrl>...</developerConnectionUrl>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<modules>
<module>../common</module>
<module>../data</module>
<module>../client</module>
<module>../webplatform</module>
</modules>
...
</project>
どのように解決するのですか?
で説明されているように プラグイン セクションで説明されています。
groupId:artifactId:version の標準的な座標を越えて、プラグインやこのビルドとのインタラクションを設定する要素があります。
- を継承しています。 このプラグインの設定を、この設定を継承するPOMに適用するかどうかを、trueまたはfalseで指定します。
ということで
<inherited>false</inherited>
を追加するだけで、子POMでの継承を避けることができます。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<inherited>false</inherited>
...
</plugin>
関連
-
[解決済み] DreamWeaver の _notes フォルダと dwsync.xml ファイルは、ソースコントロールによって安全に無視できますか?
-
[解決済み】Maven モジュール + 特定の単一モジュールのビルド
-
[解決済み】Mavenの親POMとモジュールPOMの比較
-
[解決済み】3ウェイマージの方が2ウェイマージより有利なのはなぜですか?
-
[解決済み】Mercurial - 古いバージョンに戻してそこから継続する
-
[解決済み] Hudson / Jenkinsの設定ファイルをソース管理する方法はありますか?
-
[解決済み] 名前付きブランチとマルチリポジトリの比較
-
[解決済み] Mercurial (hg) は特定のファイルだけをコミットする
-
[解決済み] ソフトウェアのバージョン番号付けはどのようなルールで行われているのですか?重複
-
[解決済み] ローカルチェンジセットをすべて削除し、ツリーに戻す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] hg forgetとhg removeの違いは何ですか?
-
[解決済み】ソースコントロールに変更をコミットする頻度を教えてください。[クローズド]
-
[解決済み] 開発はブランチで続けるか、トランクで続けるか?[クローズド]
-
[解決済み] Mercurialでフォルダ以下をすべて無視するにはどうしたらいいですか?
-
[解決済み] Hudson / Jenkinsの設定ファイルをソース管理する方法はありますか?
-
[解決済み] IntelliJ IDEA 9/10、ソースコントロールにチェックインする(しない)フォルダは何ですか?
-
[解決済み] 名前付きブランチとマルチリポジトリの比較
-
[解決済み] .gradleフォルダはバージョン管理に追加すべきですか?
-
[解決済み] Mercurialでgraftを使用した場合の影響
-
[解決済み] KDIFFマージにおけるA,B,Cとは?