簡體   English   中英

提供范圍的Maven傳遞依賴項

[英]Maven transitive dependencies with provided scope

在此處輸入圖片說明

根據來自Maven完整參考的圖像,當直接依賴項范圍為“編譯”並且傳遞性依賴項的范圍為“提供”時,傳遞性依賴項將被忽略。

我的問題是,如果直接依賴項類從我的項目的此傳遞依賴項擴展了一個類,則將失敗,因為在編譯時,“ javac”將從傳遞依賴項中尋找直接依賴項擴展的類,並且在編譯時找不到它classpath,因為maven忽略了它。

基本上,這就是為什么編譯直接依賴項時編譯傳遞依賴項范圍而不是運行時的原因,為什么在提供傳遞性依賴項范圍時不考慮相同的規則?

  1. compile需要具有傳遞性,而您的繼承示例就是這樣做的原因之一。 當然,通常不需要所有可傳遞編譯依賴項來進行編譯,但是比后悔要安全得多。

  2. provided的不是傳遞性的。 我的解釋如下: provided意味着容器/平台為您提供了所需的工件。 provided什么,什么不依賴於容器。 如果您不知道將在其上運行的容器,則將provided的庫的依賴關系標記為provided幾乎沒有意義。 因此,在“可部署單位”(例如戰爭或耳朵)的級別上對依賴項進行“分類”更為有意義。

暫無
暫無

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

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