簡體   English   中英

pom應該聲明傳遞依賴嗎?

[英]Should a pom declare transitive dependencies?

我的模塊MyLibrary依賴於工件ThirdPartyLibrary。

我的模塊MyApplication依賴於MyLibrary,但也直接調用ThirdPartyLibrary中的代碼。

MyApplication應該明確地將ThirdPartyLibrary包含為pom中的依賴項,還是依賴於MyLibrary將其作為依賴項包含它的事實?

您應該直接聲明應用程序所依賴的每個依賴項,即使(此時)您的另一個直接依賴項會將相同的依賴項傳遞給您的應用程序。 原因如下:如果升級MyApplication以使用MyLibrary的未來版本(您不知道)不再依賴於ThirdPartyLibrary ,則代碼將突然無法編譯 - 直到您將對ThirdPartyLibrary的顯式依賴添加到MyApplication 這意味着這種依賴應該始終存在。

僅供參考, maven-dependency-plugin具有非常有用的dependency:analyze目標 ,幫助您確定應用程序應聲明哪些依賴項; 它將查看MyApplication的代碼,查看MyLibrary的依賴關系,並發出MyLibrary使用但未聲明的警告:

[WARNING] Used undeclared dependencies found:
[WARNING]    org.example:ThirdPartyLibrary:jar:1.0:compile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM