2012-08-15 230 views
2

我正在構建一個Java項目MaterialsDep,這是一個用於項目craftbukkit的插件[加載到我的工作空間以及類型jar和範圍編譯的MaterialsDep的直接依賴項]。在eclipse中查看MaterialsDep的pom依賴關係層次結構CB所需的所有jar顯示爲已解決並正確列出。但是,在項目AP上運行mvn dependency:copy-dependencies只會複製直接依賴關係而沒有其他任何內容。與M2E的依賴層次不同的Maven依賴關係樹

運行依賴:樹顯示:

[INFO] --- maven-dependency-plugin:2.4:tree (default-cli) @ MaterialsDep --- 
[INFO] MaterialsDep:MaterialsDep:jar:0.0.1-SNAPSHOT 
[INFO] +- org.bukkit:craftbukkit:jar:1.3.1-R1.1-SNAPSHOT:compile 
[INFO] +- org.pircbotx:pircbotx:jar:1.7:compile 
[INFO] \- org.bukkit:bukkit:jar:1.3.1-R1.1-SNAPSHOT:compile 

這是直接依賴關係。

我應該如何去確保craftbukkit的依賴被識別和複製?

[編輯]

dependency:tree爲craftbukkit:

[INFO] org.bukkit:craftbukkit:jar:1.3.1-R1.1-SNAPSHOT 
[INFO] +- org.bukkit:bukkit:jar:1.3.1-R1.1-SNAPSHOT:compile 
[INFO] +- org.bukkit:minecraft-server:jar:1.3.1:compile 
[INFO] +- net.sf.jopt-simple:jopt-simple:jar:3.2:compile 
[INFO] +- jline:jline:jar:2.6:compile 
[INFO] +- org.fusesource.jansi:jansi:jar:1.8:compile 
[INFO] +- org.xerial:sqlite-jdbc:jar:3.7.2:compile 
[INFO] +- mysql:mysql-connector-java:jar:5.1.14:compile 
[INFO] +- org.avaje:ebean:jar:2.7.3:provided 
[INFO] | \- javax.persistence:persistence-api:jar:1.0:provided 
[INFO] +- org.yaml:snakeyaml:jar:1.9:provided 
[INFO] +- com.google.guava:guava:jar:10.0:provided 
[INFO] | \- com.google.code.findbugs:jsr305:jar:1.3.9:provided 
[INFO] +- commons-lang:commons-lang:jar:2.3:provided 
[INFO] +- junit:junit-dep:jar:4.10:test 
[INFO] +- org.hamcrest:hamcrest-library:jar:1.2.1:test 
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.2.1:test 
[INFO] \- com.google.code.gson:gson:jar:2.1:compile 

回答

0

通過正確配置dependency插件。屬性excludeTransitive定義了傳遞依賴性是否會被忽略。確保它的價值是false

mvn help:effective-pom可能有助於瞭解插件的配置方式。

[編輯]copy-dependencies將只複製dependency:tree顯示。正如你在上面的輸出中看到的那樣,craftbukkit本身沒有任何進一步的依賴關係。我的猜測是craftbukkit的POM中的所有依賴項都有<optional>true</optional>

如果是這樣的話,那麼你將不得不在你的POM中再次提到它們。

+0

effective-pom顯示沒有已定義或包含的排除項,如果我正確理解文檔,應該使其默認爲「包含所有」傳遞項。爲了以防萬一,我會放棄它。 – MC78 2012-08-15 19:23:36

+0

也看看'craftbukkit'的POM。 'copy-dependencies'將忽略'可選的'依賴關係。 – 2012-08-16 08:58:53

+0

我已經爲上面的craftbukkit添加了依賴關係樹。我沒有想到'提供的'依賴被複制,但我確實希望'編譯'出現。看看CraftBukkit的有效性,任何地方都沒有可選的功能。 – MC78 2012-08-16 10:17:07