1
私はいくつかのサブモジュールを持つライブラリを持っています。親POMにライブラリのバージョンを設定しました。Maven BOM(Bill of Materials)の単一エントリ内のすべてのMavenサブモジュールのバージョンを設定します
また、このライブラリが定義されているMaven部品表(BOM)プロジェクトを作成しました。
最初場合で、Iは、第二ケースに
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.softtech</groupId>
<artifactId>BatchLibrary</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
</dependencyManagement>
以下のようにBOM内のライブラリ全体のバージョンを設定し、Iは以下
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.softtech</groupId>
<artifactId>BatchLibrary-core</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.softtech</groupId>
<artifactId>BatchLibrary-web</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
</dependencyManagement>
ように個別にライブラリの各サブモジュールのバージョンを設定します このBOMをプロジェクトに追加しました。私のプロジェクトでバージョンのないライブラリのサブモジュールを宣言するとき。前述した最初のケースでは、私は
dependency.versionは、後者の場合は
が不足しているエラーを取得し、それが正常に動作します。
これはBOMの仕組みですか?私は、BOMに個別にバージョンを持つサブモジュールをすべて定義する必要がありますか、バージョンのある私のライブラリの親POMを定義するだけで済みます。それが必要ならば?なぜ私の場合はうまくいかないのですか?