Gradle のようなマルチモジュール Maven プロジェクトのルートを見つける簡単な方法はありますrootDir
か?
バックグラウンド:
maven-dependency-plugin を使用して、マルチモジュール プロジェクトのすべてのサブモジュールから、プロジェクト全体のルート ディレクトリに相対的なディレクトリにアーティファクトをコピーしたいと考えています。
つまり、私のレイアウトは次のように見えますが、名前が変更されています。
to-deploy/
my-project/
module-a/
module-b/
more-modules-1/
module-c/
module-d/
more-modules-2/
module-e/
module-f/
...
そして、すべてのアーティファクトをそれぞれのモジュールのターゲットディレクトリからコピーしたいmy-project/../to-deploy
ので、最終的には
to-deploy/
module-a.jar
module-b.jar
module-c.jar
module-d.jar
module-e.jar
module-f.jar
my-project/
...
次のように、各モジュールで相対パスを使用して実行できます。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>jar</type>
<outputDirectory>../../to-deploy</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<outputDirectory>
しかし、要素に相対パスを指定したくありません。のようなものが欲しいのですが${reactor.root.directory}/../to-deploy
、このようなものは見つかりません。
また、この maven-dependency-plugin 構成を継承する方法があれば、モジュールごとに指定する必要がなくなります。
また、ルート pom からカスタム プロパティを継承しようとしました。
<properties>
<myproject.root>${basedir}</myproject.root>
</properties>
しかし${myproject.root}
、モジュールPOMで使用しようとすると、モジュール${basedir}
のbasedirに解決されます。
また、各開発者とおそらく継続的な統合サーバーは、profiles.xml ファイルでルート ディレクトリを構成する必要がありますが、私はそれを解決策とは考えていません。
マルチモジュール プロジェクトのルートを見つける簡単な方法はありますか?