2012-06-14 38 views
3

我有一個Maven工件,有一些依賴關係。我想正常發佈內置在jar中的模塊,但我也想使用maven shade插件在其中發佈一個包含它的依賴關係的jar。這個超級罐子有不同的分類器。maven中不同分類器的不同依賴關係

這一切都工作正常,除非有人使用其分類器拉入超級罐,他們仍然得到原來的所有依賴關係,他們不需要。

如何根據分類器排除某些依賴關係?我試過使用配置文件,但我無法解決如何激活基於工件分類器的配置文件。

我知道我可以將uber jar作爲一個整體進行排除的新工件本身,但這有點麻煩,我希望有更好的解決方案?

+0

你在哪裏'拉進'超級瓶子?作爲另一個Maven項目的依賴?如果是這樣,爲什麼? – Raghuram

+0

對不起,我的意思是當使用我的圖書館的人拉我的超級罐子。爲了方便使用我的圖書館的人們,我想提供一個超級罐子,以便在經常與另一個圖書館發生衝突的環境中使用我的圖書館(因此,我們可以使用陰影) – user1456036

+0

我不確定我的理解。你可以發佈你的POM嗎?這將有所幫助。 – mschonaker

回答

1

嘗試optional依賴關係。您必須將uber jar工件的可選值中的所有依賴項聲明爲true。

另外,您可能想要創建另一個工件,而不是使用分類器。你可以從mockito中調整它。見mockito-core vs mockito-all