我們有一個多模塊POM,也作爲對所涉及的所有子模塊父POM。稱它爲MultiModulePOM
。我們有大約70個模塊,編號爲Module1
到Module70
。最佳方式* *提供的依賴
現在:這些模塊的前30個在編譯時需要一組JAR文件只有。那是 - scope=provided
。由於我們討論的是一個集合的JAR文件,所以保持這30個模塊的同步是非常繁瑣的,並且一般來說,我不是一個複製定義的狂熱粉絲。
所以,我陷入了dependency grouping的陷阱。看起來像一個好主意,但它不適用於provided
依賴關係。換句話說:如果我將模塊中的依賴JAR分組在ExtDependencies
模塊中,並且使Module1
依賴於ExtDependencies
,那麼由ExtDependencies
引用的JAR將不會被傳遞添加到Module1
,因爲它們的範圍是provided
。
(如果最後一段是不正確的,請讓我知道,因爲它真的可以讓我擺脫困境的)
,我可以看到的唯一的其他選擇是創建一個名爲父POM(例如)IntermediaryPOM
。 IntermediaryPOM
擴展爲MultiModulePOM
,並將該組依賴JAR文件與scope=provided
一起使用。模塊Module1
-Module30
然後延伸IntermediaryPOM
。
這似乎這樣的伎倆,但我有三個問題是:
- 它增加了POM的另一層那我不知道真正需要的。
- 之後,在發佈期間,我發現自己也必須安裝/部署中介POM。
- 考慮一般的情況下:所述中間POM可以具有用於其它套的JAR(對於模塊31-50)其他兄弟姐妹。因此,這個解決方案看起來不太好。
所以我的問題是 - 根據你的經驗,最好的方法是什麼?這種用例的任何已知最佳實踐?
嗯。我沒有想到...... scope = compile的常見依賴項,以及scope = provided的ExtDependencies。我現在要給它一個鏡頭... +1不管 – Isaac
而且它效果很好。非常感謝。 – Isaac
@Isaac很高興聽到這個。別客氣。 –