2016-10-31 41 views
4

マイライブラリというライブラリがあります。これらはMavenにパッケージ化され、プライベートNexusリポジトリに格納されています。これは、コンパイルし、正しく私のレポにアップロードされますし、そのpom.xmlファイルで指定された次の依存関係があります:私は、別のプロジェクトでは、この依存関係を含め私の子プロジェクト、以下pom.xmlを使用していますコンパイル時にネストされたMavenの依存関係が表示されないのはなぜですか?

<dependencies> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>1.7.13</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.protobuf</groupId> 
     <artifactId>protobuf-java</artifactId> 
     <version>3.1.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

をブロック:

<repositories> 
    <repository> 
     <id>MyRepo</id> 
     <name>My Maven Repository</name> 
     <url>http://localhost:8081/nexus/repo</url> 
    </repository> 
</repositories> 
... 
<dependencies> 
    <dependency> 
     <groupId>com.my.group</groupId> 
     <artifactId>my-library</artifactId> 
     <scope>compile</scope> 
     <version>1.0.0</version> 
    </dependency> 
</dependencies> 

私は私の子プロジェクトmvn clean installを実行すると、それが表示されますそのMavenは見つけると私はそれを含めない限り私の子プロジェクトためpom.xmlで明示的にcom.google.protobuf私のライブラリではなく、ネストされた依存関係をダウンロードすることができます。私はmvn dependency:treeを実行するときにMavenのは私の依存関係ではなく、ネストされたものを見ることができることを確認することができます

... 
[INFO] +- org.springframework.data:spring-data-redis:jar:1.7.1.RELEASE:compile 
[INFO] | +- org.springframework.data:spring-data-keyvalue:jar:1.1.1.RELEASE:compile 
[INFO] | \- org.springframework:spring-oxm:jar:4.2.5.RELEASE:compile 
[INFO] +- redis.clients:jedis:jar:2.8.1:compile 
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided 
[INFO] +- com.my.group:my-library:jar:1.0.0:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.4.4:compile 
... 

は、ネストされたライブラリの依存関係が動作するようになっているか、このですか?私は他の依存関係のネストされた依存関係がMavenによって自動的に解決され、コンパイルスコープでダウンロードされたと考えました。私は私の子プロジェクト私のライブラリないでネストされた依存関係を一覧表示するには期待していたが、それは動作しませんようです。

+0

あなたの子供のプロジェクトがいません親プロジェクトへの参照?'達人--debugクリーンinstall'を実行してみてください、それが何か役に立つ – sirandy

+0

:はい、これは参照です: 私のライブラリ com.my.group をコンパイル 1.0.0 nandsito

+0

@sirandyをログに記録するかどうかを確認 – nofunatall

答えて

1

父親のpom.xmlはdependenciesManagementタグをdependenciesタグの外側に追加する必要があります。 1つの場所でモジュールの依存関係を管理するだけですが、実際にそれらをプロジェクトにインポートすることはありません。

まだurモジュールモジュールのpomで宣言しています(ただし、バージョンタグを残してはいけません。父親のモジュールからpom)

0

@ herokingsleyの答えは正しい構成に私を得た。その答えが私の子供の入れ子依存を再宣言する必要があることを示唆しているように思ったので、私はそれを試してみることをためらっていました。私は最終的にそれを試してみましたが、私は意図的にネストされた依存関係を宣言していませんでした。my-child-projectまだチャームのように働いていました。ここに私の問題を解決したコードがあります。私は次の私のライブラリにコードを変更:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>com.google.protobuf</groupId> 
      <artifactId>protobuf-java</artifactId> 
      <version>3.1.0</version> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

<dependencies> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>1.7.13</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.protobuf</groupId> 
     <artifactId>protobuf-java</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

mvn dependency:treeを実行しているとき、それは次の出力が生じたとして上記の変更は十分だった:

... 
[INFO] +- org.springframework.data:spring-data-redis:jar:1.7.1.RELEASE:compile 
[INFO] | +- org.springframework.data:spring-data-keyvalue:jar:1.1.1.RELEASE:compile 
[INFO] | \- org.springframework:spring-oxm:jar:4.2.5.RELEASE:compile 
[INFO] +- redis.clients:jedis:jar:2.8.1:compile 
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided 
[INFO] +- com.my.group:my-library:jar:1.0.0:compile 
[INFO] | \- com.google.protobuf:protobuf-java:jar:3.1.0:compile 
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.4.4:compile 
... 
関連する問題