web-dev-qa-db-ja.com

Mavenでモジュールをビルドするときに依存プロジェクトをビルドする方法

子プロジェクトがMavenによってビルドされているときに、依存プロジェクトをビルドするにはどうすればよいですか?例として、A、Bという2つのプロジェクトがあります。プロジェクトBはプロジェクトAに依存しています。Mavenを使用してプロジェクトBをビルドするときに、プロジェクトAをビルドしたいと思います。どうすればいいですか?

15

Mvnに渡すことができるこれらのオプションを見てください。

Options:
 -am,--also-make                        If project list is specified, also
                                        build projects required by the
                                        list
 -AMD,--also-make-dependents            If project list is specified, also
                                        build projects that depend on
                                        projects on the list

私はあなたが-AMDを使わなければならないとあなたの場合を信じています

編集:あなたがpomを通してそれをする必要がある場合。サブモジュールAとBをリストするだけのCなどの別のモジュールを作成する必要があります。Cをビルドすると、Mavenリアクターは自動的に両方をビルドします。

<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>com.test</groupId>
  <artifactId>ParentModuleC</artifactId>
  <packaging>pm</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ParentModuleC</name>
  <dependencies>
  </dependencies>
  <build>
  </build>
  <modules>
    <module>ModuleA</module>
    <module>ModuleB</module>
  </modules>
</project>

ModuleAおよびBで、これを追加する必要があります。

<parent>
    <groupId>com.test</groupId>
    <artifactId>ParentModuleC</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

そして、ディレクトリ構造は次のようになります。

ParentModuleC
    |-pom.xml
    |----------->ModuleA
    |               |->pom.xml
    |----------->ModuleB
    |               |->pom.xml

簡単な例については、これを見てください: http://books.sonatype.com/mvnex-book/reference/multimodule.html

16
Yogesh_D