2011-03-17 26 views
0

在多模塊項目中運行mvn dependency:copy-dependencies時,似乎mvn預計jar已經安裝在.m2/repo中。也許我失去了一些東西,但我無法弄清楚它的意義......
這個問題有點類似於Maven: Why does it need dependency modules' .jars for `mvn initialize`?,但它更具體到依賴插件(我猜...)和提到的問題沒有'噸有一個很好的答案,至少沒有幫助我......mvn依賴插件需要安裝jar嗎?

我在這MODA取決於商業方法
現在我想運行

​​

這應該複製所有多樣板工程modA和它所依賴的所有模塊的依賴關係,例如也是modB

問題是,如果.m2/repo不包含modB的jar,那麼插件失敗...爲什麼?
有趣的是,如果我只是在.m2/repo /在適當的位置創建一個空的「jar」文件,那麼插件就足夠了,所以這只是證明它甚至不會查看jar的內容,但它仍然要求它到位。 WTF?...

第一個問題 - 爲什麼?
第二個問題 - 我怎麼繞過這個問題,而不必真的生成罐子或「觸摸」它們? (我有很多,這是不實際...)

更新:OMG,我只是意識到我忘了添加一個有價值的作品......我不希望modB被複制,所以我實際上排除了它的工件ID從命令,所以它實際上是:

mvn dependency:copy-dependencies -am -pl modA -DexcludeGroupIds=mod.b.group.id 

我甚至嘗試:

mvn dependency:copy-dependencies -am -pl modA -DexcludeArtifactIds=modB 

所以,如果我沒有做到這一點則totatlly是有道理的,插件會尋找商業方法的回購,但由於modB被排除在外,所以我期望插件不要求modB.jar存在。
唉,也許這個問題只是需要一個錯誤報告...

回答

0

爲什麼?我想這就是命令應該做的 - 複製依賴關係,如果它們不存在,就會失敗。插件不關心工件的完整性。

通過使用插件的excludeGroupIdsexcludeArtifactIds參數,可以繞過選定組/項目的一種方法。

+0

我很抱歉,但我忘了添加最有價值的作品...看看我的更新問題。我實際上從複製命令中排除了modB,但它沒有像預期的那樣工作。 – Ran 2011-03-17 19:18:29