2017-12-05 30 views
0

私はjarのいずれかと依存関係があり、私はpom xmlで提供されているようにマークしています。推移的な依存関係jarの一部は、提供されているものとしてマークされていて、戦争にパッケージ化されていないようですが、他のものはまだwar libsでコンパイルされパッケージ化されています。ポンポンXMLでMavenのスコープが提供され、推移的な依存関係

依存関係:

<dependency> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-ftp</artifactId> 
      <scope>provided</scope> 
</dependency> 

依存関係ツリー:

[INFO] +- org.apache.camel:camel-ftp:jar:2.17.0.redhat-630262:provided 
[INFO] | +- com.jcraft:jsch:jar:0.1.54:provided 
[INFO] | +- commons-net:commons-net:jar:3.3.0.redhat-3:provided 
[INFO] | +- com.sun.xml.bind:jaxb-core:jar:2.2.11:compile 
[INFO] | \- com.sun.xml.bind:jaxb-impl:jar:2.2.11.redhat-2:compile 
[INFO] +- org.apache.camel:camel-csv:jar:2.17.0.redhat-630262:provided 

プラグインのバージョンの詳細:

Maven documentation (see table)によると
<maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <cdi.api.version>1.2.0.redhat-2</cdi.api.version> 
     <javax.inject.version>1.0.0.redhat-6</javax.inject.version> 
     <sonar.host.url>http://vfrde2srta0401.agcs.biz:9000</sonar.host.url> 
     <xerces.version>2.11.0-22</xerces.version> 
     <xmlunit.version>1.6</xmlunit.version> 
     <maven.compilerplugin.version>3.7.0</maven.compilerplugin.version> 
     <maven.releaseplugin.version>2.5.3</maven.releaseplugin.version> 
     <maven.warplugin.version>3.2.0</maven.warplugin.version> 
     <maven.jarplugin.version>3.0.2</maven.jarplugin.version> 
     <maven.surefireplugin.version>2.20.1</maven.surefireplugin.version> 
     <maven.coberturaplugin.version>2.7</maven.coberturaplugin.version> 
+0

mavenバージョンとは何ですか?あなたはMaven-War-Pluginを使っていますか? – nayakam

+0

maven 3.5、はい私はwarプラグインの WEB-INF/lib/*。jarコンフィギュレーションを指定してもすべての依存関係はパッケージ化されませんが、推移的依存性のためにスコープがどのように決定されたかを理解したかっただけです。 – Ravi

+0

どのバージョンのmaven-dependency-pluginを使用していますか? – khmarbaise

答えて

0

、あなたはprovidedスコープとの依存関係を定義した場合、推移的な依存関係には、次の最終的な範囲があります元の範囲に応じて:

  • コンパイルは>>>省略
  • ランタイム設け
  • を提供する
  • 試験>省略

compile推移的依存性を提供しましたあなたのprovided依存関係はprovidedとみなされます。

0

推移従属性スコープは定義されたスコープに基づいて設定されます。 Introduction to the Dependency Mechanismを参照してください。スコープを変更し、依存関係ツリー(mvn dependency:tree)を確認することで、これを確認できます。

<dependency> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-ftp</artifactId> 
      <scope>provided</scope> 
      <version>2.12.2</version> 
    </dependency> 


INFO] \- org.apache.camel:camel-ftp:jar:2.12.2:provided 
[INFO] +- org.apache.camel:camel-core:jar:2.12.2:provided 
[INFO] +- com.jcraft:jsch:jar:0.1.49:provided 
[INFO] \- commons-net:commons-net:jar:3.3:provided 

<dependency> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-ftp</artifactId> 
      <!-- <scope>provided</scope> --> 
      <version>2.12.2</version> 
</dependency> 

[INFO] \- org.apache.camel:camel-ftp:jar:2.12.2:compile 
[INFO] +- org.apache.camel:camel-core:jar:2.12.2:compile 
[INFO] +- com.jcraft:jsch:jar:0.1.49:compile 
[INFO] \- commons-net:commons-net:jar:3.3:compile 

<dependency> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-ftp</artifactId> 
      <scope>runtime</scope> 
      <version>2.12.2</version> 
</dependency> 


\- org.apache.camel:camel-ftp:jar:2.12.2:runtime 
[INFO] +- org.apache.camel:camel-core:jar:2.12.2:runtime 
[INFO] +- com.jcraft:jsch:jar:0.1.49:runtime 
[INFO] \- commons-net:commons-net:jar:3.3:runtime 

<dependency> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-ftp</artifactId> 
      <scope>test</scope> 
      <version>2.12.2</version> 
    </dependency> 

[INFO] \- org.apache.camel:camel-ftp:jar:2.12.2:test 
[INFO] +- org.apache.camel:camel-core:jar:2.12.2:test 
[INFO] +- com.jcraft:jsch:jar:0.1.49:test 
[INFO] \- commons-net:commons-net:jar:3.3:test 

+0

こんにちは。しかし、私の場合、依存関係のツリーが表示された場合、それは同じように起こっていません、それはあなたのために起こりました。 – Ravi

+0

私はちょうどorg.apache.camelの範囲を変えて、推移的な依存関係のスコープをチェックします。 – nayakam

1

少数の人々は、すでに述べたように、あなたのprovidedスコープの依存関係の推移的依存関係は、スコープを取得する必要がありますをプロジェクトに追加します。ただし、同じ推移的な依存関係を持つスコープcompileに他の依存関係がある場合、スコープをコンパイルするように変更できます。あなたのケースでは、これらの2つの:

[INFO] | +- com.sun.xml.bind:jaxb-core:jar:2.2.11:compile 
[INFO] | \- com.sun.xml.bind:jaxb-impl:jar:2.2.11.redhat-2:compile 

はおそらくcamel-ftpよりもあなたのポンポンで別の依存関係で推移して引っ張られます。 mvn dependency:tree -Dverboseを実行して、これらの2つの理由がcompileに更新された理由を知る必要があります。

関連する問題