簡體   English   中英

Maven:Fat jar 作為本地依賴項

[英]Maven: Fat jar as local dependency

通過在本地存儲庫中安裝 jar-File 或提供指向本地 jar 的鏈接並將范圍設置為“系統”,可以在 pom.xml 中包含本地文件。 如果我包含一個胖 jar(= 一個包含所有傳遞依賴項的 jar)會發生什么? Maven 是否仍然能夠正確檢測依賴沖突,我是否仍然能夠排除我的“fat jar 依賴”的一些傳遞依賴?

問題是我正在處理一個遺留軟件項目,它之前沒有使用任何構建工具/依賴項管理工具(所以所有需要的 jars 都剛剛下載並添加到類路徑中)。 我正在嘗試將其轉換為 Maven 項目。 這對於所有開源依賴項來說並不是很困難(因為幾乎所有依賴項都可以在 Maven Central 或其他存儲庫中找到)。 在某些情況下,我們擁有很久以前獲得的專有庫,可以作為 fat jar 使用。

在這種情況下,maven shade 插件會有所幫助嗎?

作為依賴項的胖 JAR 是危險的,因為如果胖 jar 包含x.jar的內容並且x.jar也存在於類路徑中,那么您通常會遇到沖突。 Maven 不會解決沖突,因為 Maven 不知道您的胖 JAR 中包含哪些 JAR。

因此,當您有一個胖 JAR 依賴項時,您需要確保胖 JAR 中的所有內容都不是項目中其他地方的依賴項,如果是,您應該排除它。

如果您對內容進行着色,則可能不會發生此類沖突。

暫無
暫無

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

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