私は問題があります。つまりMavenは依存関係を無視しているように見えますが、階層内に表示する必要があります。Maven階層依存関係の検索
私は、次のしているプロジェクト階層:
親
--projA
--sub、親1
---- projB
----
すべてのレベル
は<parent>
タグを介してリンクされているprojC 。
sub-parent1
は、モジュールとして宣言され、依存関係は宣言されていないので、
projB
および
projC
があります。しかし
projB
は
projA
に依存しています。
sub-parent1
モジュール全体を構築すると、
projB
が
sub-parent1
を認識し、
sub-parent1
が
parent
を認識しており、依存関係(
projA
)が分かっているため、
projA
がビルドされません。しかし、私が
sub-parent1
全体を構築するときはいつも、それを構築しません。例えば、
-pl projB -am clean install
です。
何かお手伝いしました。
編集: この構造を表す構造を作成しました。サブ親を構築しよう:dropmefiles.com/5l42j
編集: 親ポンポン:
<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>test</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<modules>
<module>projA</module>
<module>sub-parent1</module>
</modules>
</project>
projA:
<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">
<parent>
<groupId>test</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>projA</artifactId>
<version>1.0</version>
</project>
サブ親1:
<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>test</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
</parent>
<artifactId>sub-parent1</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<modules>
<module>projB</module>
</modules>
</project>
projB :
<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">
<parent>
<groupId>test</groupId>
<artifactId>sub-parent1</artifactId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>projB</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>test</groupId>
<artifactId>projA</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>
編集: 私はMaven multi module project cannot find sibling moduleと同じ解決策を持っていましたが、この問題はマルチモジュールだけでなくマルチレベル(モジュールのいくつかのレベル)のプロジェクトと人物を明示的にビルドするよう指示していない依存関係も同様です。
ソリューション: だから、唯一の解決策があるようです - あなたが構築する必要があり、私の場合には、それは親(その親が現在のディレクトリである)とアドレスモジュールとなり、最上位レベルのPOMから、このようなマルチレベル構造を構築親からの相対パスで指定します。それは、その結果:
mvn -pl sub-parent1/projB -am clean install
順序は次のようになります - 最上位レベルのPOMから、このようなマルチレベル構造を構築し、私の場合には、それが親になります
[INFO] Reactor Build Order:
[INFO]
[INFO] parent
[INFO] projA
[INFO] sub-parent1
[INFO] projB
あなたはあなたのPOMのすべてを投稿することができますか?たぶん、バージョンの不一致がありますか? – Tunaki
@Tunakiここでは、この構造を表す構造を作成しました。サブ親をビルドしてみてください:http://dropmefiles.com/5l42j – user3177112
@Tunakiはpomsを追加しました – user3177112