[英]How does the Maven shade plugin decide which dependencies to put into the final jar when using the minimizeJar function?
我有一個帶有一個Java文件的Maven項目,該項目使用Maven陰影插件創建一個uber jar。 我的目標是創建一個盡可能小的可執行jar。 我決定在插件中使用minimumJar參數來縮小我的jar。 該參數是否僅放入運行所需的依賴項或編譯所需的依賴項?
答案是您鏈接到的頁面的進一步:
燈罩:燈罩
全名:org.apache.maven.plugins:maven-shade-plugin:2.3:shade
說明:執行着色的Mojo,委派給“着色器”組件。
屬性:
- 需要執行一個Maven項目。
- 需要范圍內的工件的依賴關系解析:運行時。
- 目標是線程安全的,並支持並行構建。
- 默認情況下綁定到生命周期階段:程序包。
因此,所包含的工件將是運行時的(因此也將是編譯時的)。
編輯:有關范圍的完整說明,請參閱依賴機制簡介-依賴范圍 。
在Maven中,當您進行依賴關系解析時,它使用范圍的概念-最重要的三個是(從該頁面開始):
因此,當您在src / main / java下編譯源代碼時,將使用具有編譯范圍的依賴項。 在運行應用程序時,將依賴項與編譯或運行時范圍一起使用。 編譯測試時(在src / test / java下 ),將使用編譯范圍和測試范圍。 當您使用surefire運行測試時,將把依賴項與compile , test和runtime范圍一起使用。
這意味着minimalJar將包含編譯和運行時范圍的依賴項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.