Mavenに関するドキュメントを読んだことがありますか?Mavenを使用してプロジェクトを定義している場合は、依存関係を機能させるために特別なことをする必要はありません。
ニーズに応じて、2つの選択肢があります。一方が他方に依存する2つの別個のプロジェクトを作成するか、一方のモジュールが他方に依存するマルチモジュールプロジェクトを作成できます。
2つの別々のプロジェクト
.
|-- A
| `-- pom.xml
| `-- src
| `-- main
| `-- java
`-- B
`-- pom.xml
`-- src
`-- main
`-- java
A/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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
B/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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>B</artifactId>
<version>2.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
それでおしまい!Bのプロジェクト/モジュールAに依存しています。
最初にプロジェクトAをビルドするには、発行しますmvn install
(そしてディレクトリAにあります)。アーティファクトはローカルリポジトリにインストールされます(そして他のプロジェクトで利用できます)。
次に、発行してmvn install
(そしてディレクトリBにいる)プロジェクトBをビルドします。アーティファクトはローカルリポジトリにインストールされます。
サブモジュールを持つ1つの親プロジェクト
.
|-- A
| `-- pom.xml
| `-- src
| `-- main
| `-- java
`-- B
| `-- pom.xml
| `-- src
| `-- main
| `-- java
`-- 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>A</module>
<module>B</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
<depencdencyManagement/>
サブモジュールが正しいバージョンを選択するのに役立つものがあります。
A/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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.company</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
</project>
B/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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.company</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.company</groupId>
<artifactId>B</artifactId>
<dependencies>
<dependency>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
</dependency>
</dependencies>
</project>
このソリューションでは、親フォルダーに自分を配置して実行するだけですmvn install
(mvn package
など)。これで、AとBの両方を正しい順序でビルドし、このプロジェクト全体をEclipseにインポートできます。