BOMを使用して、別のプロジェクトからマイニングに依存関係をインポートしています。そのBOMで既に宣言されている依存関係のバージョンを参照する方法が必要です。これまで、依存関係のバージョンをBOMのプロパティとしてリストしようとしましたが、プロパティがBOMとともにインポートされないため、このアプローチは失敗します。
依存関係プラグインの dependency:properties ゴールがほぼ必要なことを正確に実行する場所を見てきましたが、アーティファクトのフルパスを提供する代わりにプロパティとしてバージョンが必要です。解決されたアーティファクトのバージョンをプロパティとして提供できるものはありますか?
UPDATE- '親pomを使用しないのはなぜですか?'
私は通常、提供される依存関係がBOMアーティファクトで指定されているアプリケーションサーバー環境で作業していることに気付きます(これは、相互に関連するアーティファクトのグループを配布するための一般的/標準的な方法になっているようです。つまり、 widlfly =)。そのため、BOMを唯一の正しい情報源として扱いたいと思います。 re-delcaringのようなことを行うという考えは、BOMですでに定義されている依存関係バージョンプロパティが正しくないようです。
アプリケーションサーバーの環境をミラーリングした親pomでプロパティを定義する場合、親pomプロパティとBOMプロパティの同期を維持することを心配する必要があります-なぜその時点でBOMを持っているのですか?
情報は依存関係ツリーですでに利用可能です、それはそれを公開するだけの問題です...
このための既存のMavenまたはプラグイン機能が見つからなかったため、古いdependencypath-maven-pluginをフォークし、バージョンを使用するように変更しました。これで、次のようなプラグインをドロップできます。
<build>
.
.
<plugins>
.
.
<plugin>
<groupId>io.reformanda.semper</groupId>
<artifactId>dependencyversion-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>set-all</id>
<goals>
<goal>set-version</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
そして、次のようなプロパティにアクセスします。
groupId:artifactId:type [:classifier] .version
I.E.
io.undertow:undertow-core:jar.version = 1.3.15.Final
プラグインの使用方法の詳細については、 [〜#〜] readme [〜#〜] を確認してください。 @ Maven Central で利用可能です:
<dependency>
<groupId>io.reformanda.semper</groupId>
<artifactId>dependencyversion-maven-plugin</artifactId>
<version>1.0.0</version>
</dependency>
...プラグインはずっと下に...
簡単な答え-はい、できます。
詳細には、ルートpom.xml:
<properties>
<slf4j.version>1.7.21</slf4j.version>
</properties>
...
<dependencyManagement>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
...
</dependencyManagement>
モジュールpom.xmlの場合:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
...
</dependencies>
また、$ {slf4j.version}値を使用して、リソースをフィルタリングしたり、プラグイン構成で使用したりすることもできます。
更新
親POMでプロパティを使用できない場合は、次のいずれかを実行できます。
このMavenプラグインはGithub( https://github.com/semper-reformanda/dependencyversion-maven-plugin )にあり、たとえばWebjarsの依存関係を使用する場合など、依存関係のバージョンを扱うすべての人にとって必須です。 -Webjarのバージョン番号をWebリソースに直接挿入できます。
私は長い間そのような機能を探していましたが、もっと多くの人がそれに出くわし、Mavenセントラルで起動することを願っています(実際にはMavenに付属しているはずです)