2012-04-04 68 views
3

具體示例代碼衝突:包括圖書館,同時避免了使用你的代碼

我正在寫一個庫來提供特定的功能。在編寫我的庫時,我不想重新發明輪子,我想使用Apache Commons(即StringUtils等)。不幸的是,如果我將這個庫包含在我的庫中,或者作爲單獨的jar包,或者構建到我自己的jar中(依賴於構建),我會強制Apache Commons放在任何使用我的庫的人上......另外,我強制使用我使用的版本在他們。

問:

有沒有辦法在Java中創建的那些誰使用你的庫庫/罐,關於第三方庫依賴,而不強迫該庫(或更糟的是,該庫的版本) ?

回答

1

如果你打算通過Maven發佈一個二進制jar,你不應該過分擔心'強制'依賴任何使用jar的人。任何使用Maven的人都完全習慣於被拖入的傳遞依賴關係。Maven有很多whizzy代碼來排除版本衝突。

如果你對此非常偏執,你可以使用陰影插件創建一個具有依賴關係的超級jar包,並重命名所有依賴包:http://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html,但它並不是真的有必要。

+0

「whizzy」是一個技術術語嗎? – 2012-04-04 15:04:51