2017-05-17 87 views
1

我有一個Maven項目說「MyProject」,使用另一個項目作爲普通的Maven依賴項,說我寫的「MyDependency」。 MyDependency是一個maven項目,使用其他依賴項,如springframework,apache-commons,apache-camel等。我的maven項目可以從依賴關係中的pom中導入依賴項嗎?

問題是這樣的。我希望MyProject在MyDependency中查看傳遞依賴關係,而不必將它們再次添加到pom文件中。我嘗試了maven-dependency插件和maven-jar插件來生成一個jar,如下所示,它包含它內的所有依賴關係,但沒有結果。

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-dependency-plugin</artifactId> 
<version>2.5.1</version> 
<executions> 
    <execution> 
     <id>copy-dependencies</id> 
     <phase>prepare-package</phase> 
     <goals> 
      <goal>copy-dependencies</goal> 
     </goals> 
     <configuration> 
      <includeScope>compile</includeScope> 
      <outputDirectory>${project.build.directory}/classes/lib</outputDirectory> 
      <overWriteReleases>false</overWriteReleases> 
      <overWriteSnapshots>false</overWriteSnapshots> 
      <overWriteIfNewer>true</overWriteIfNewer> 
     </configuration> 
    </execution> 
</executions> 

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-jar-plugin</artifactId> 
<version>2.6</version> 
<configuration> 
    <archive> 
     <manifest> 
      <addClasspath>true</addClasspath> 
      <classpathPrefix>lib/</classpathPrefix> 
     </manifest> 
     <manifestEntries> 
      <Class-Path>lib/</Class-Path> 
     </manifestEntries> 
    </archive> 
    <finalName>core-${project.version}</finalName> 
</configuration> 
<executions> 
    <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>jar</goal> 
     </goals> 
    </execution> 
</executions> 

有沒有辦法做到這一點?或者我的問題都是錯誤的?

+1

你是什麼意思「我希望MyProject看到傳遞依賴」?如果你沒有做任何不尋常的事情,這應該是開箱即用的。 – Daniel

+0

是的,我知道它應該默認工作,但這不是實際發生的事情。 –

+0

您是否在使用'MyDependency'的任何特定範圍? – Daniel

回答

2

MyProject可以使用MyDependency中的依賴關係。 Maven自動解決傳遞依賴。你不需要做任何複製。您可以使用mvn dependency:list查看項目使用的整個工件列表。

相關問題