背景:私のJavaプロジェクトのほとんどは、多くのボイラープレート構成を持っているので、私のPOMに書き込むことになります。 (たとえば、sourceEncodingは常にUTF-8です。組織の詳細は決して変更されません)。コピーブロックの設定を保存するために、自分の標準の「親」POMを作成しました。各プロジェクトごとに拡張することができます。Maven:親POMのバージョンを読むには
私は、私が作業しているすべてのJavaプロジェクト(checkstyle、PMDなど)で使用する多数のツールを用意していますので、各ツールのプラグインを標準の親pomに追加しました。
PMD(およびその他のツール)には面白い問題があります。正しく動作するには、一連の設定ファイルが必要です。マイテンプレート
<My Template>
|--- Config Files
\--- Parent Pom
- :Mavenのは、「モジュールごとに展開可能な資源」の概念で動作することを好むので、私は、次の(簡体字)構造を作成しましたは、2つのモジュールとMavenの制御プロジェクトです
- コンフィグファイル:はすべて私のボイラープレートコードです:はZIPにPMDの設定ファイルをバンドルし、Mavenのレポ
- 親ポンポンにそれらを展開Mavenのモジュールです。それは....「設定ファイル」に依存しているし、これまでのところは良いZIP
から設定を抽出するように設定されている
のrequirment:「親ポンポン」と「コンフィグファイル "は常にビルドされ、一緒にデプロイされます。つまり、" Parent Pom "バージョン1.2.3は" Config Files "バージョン1.2.3でしか動作しませんので、" Parent POM "で依存関係を記述すると、 :
<dependency>
<groupId>org.my-org</groupId>
<artifactId>config-files</artifactId>
<version>${project.version}</version>
<type>zip</type>
<scope>test</scope>
</dependency>
問題:私は自分のアプリケーションを起動するときに(バージョン0.0.1としましょう)、親として「Parent Pom」を使用します。 Mavenはプロジェクトの有効POMを計算し、$ {project.version}は1.2.3(親POMバージョン)ではなく0.0.1(アプリケーションバージョン)と解釈されます。 Mavenは設定ファイルを見つけられません。
質問:質問:「POM xxxのバージョンを教えてください」とMavenに伝えるにはどうすればよいですか?
私が実際にやっていないのは、リリースのPOMをバンプしたときに更新するのを忘れることができるので、$ {project.version}とロックステップの追加プロパティを作成することです!
こんにちは@lexicore、 '$ {project.parent.version}'はうまく仕事をします。私の計画は、この変数を使ってプロパティを定義し、 'pluginManagement'を設定するときにそれを参照することです – Stormcloud