私はmavenプロジェクトの次のツリー構造を持っています:
Root/pom.xml
Root/moduleA/pom.xml
Root/moduleA/src/main/java/moduleA/MyClass.java
そして、exec-mavenプラグインを介してルートpom.xmlでクラスmoduleA.MyClassを使用したいと考えています。問題は、ModuleAをpom xmlのモジュールとして定義すると
Root/pom.xml
<modules>
<module>moduleA</module>
</modules>
ルートの依存関係として宣言することはできません
Root/pom.xml
<dependencies>
<dependency>
<groupId>Root</groupId>
<artifactId>moduleA</artifactId>
<version>1.0</version>
<scope>install</scope>
</dependency>
</dependencies>
次のような周期的な依存関係につながるためです。
[INFO] The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='Root:moduleA'}' and 'Vertex{label='Root:moduleA'}' introduces to cycle in the graph Root:moduleA --> Root:moduleA
問題はinstall
、ルートpomで実行されるターゲットでmoduleAをビルドし、exec-maven-pluginでmoduleAのクラスを実行できるようにする方法です。