現在、maven2 では継承/構成機能を使用しており、すべての子プロジェクトで依存関係 (バージョン番号を除く) を再宣言する必要があります。
いいえ、あなたはしません。親 pom で宣言された依存関係は継承されます。
すべての子供たちの間で依存関係の一部を共有したいことを Maven に伝える方法はありますか?
<parent>
子 POM で要素を宣言するだけです。たとえば、この親 POM の場合:
<?xml version="1.0" encoding="UTF-8"?>
<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>my.group.id</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>Demo - Parent</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<modules>
<module>child</module>
</modules>
</project>
そして、子モジュールのこの POM:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<parent>
<groupId>my.group.id</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<name>Demo - Child</name>
<artifactId>child</artifactId>
<packaging>jar</packaging>
</project>
junit の依存関係は、期待どおりに継承されます。
$ mvn 依存関係:ツリー
[情報] プロジェクトをスキャンしています...
[INFO] プレフィックス: 'dependency' を持つプラグインのリポジトリを検索しています。
[情報] - - - - - - - - - - - - - - - - - - - - - - - - -------------------------
[INFO] 建物のデモ - 子
[情報] タスク セグメント: [依存関係: ツリー]
[情報] - - - - - - - - - - - - - - - - - - - - - - - - -------------------------
[情報] [依存関係: ツリー {実行: デフォルト cli}]
[情報] my.group.id:child:jar:1.0-SNAPSHOT
[INFO] \- junit:junit:jar:3.8.1:test
[情報] - - - - - - - - - - - - - - - - - - - - - - - - -------------------------
[情報] ビルド成功
[情報] - - - - - - - - - - - - - - - - - - - - - - - - -------------------------
...
セクションで依存関係を宣言して<dependencyManagement>
いると思われます(別の目的があります)。