簡體   English   中英

如何獲取 maven 陰影插件構建的 uberjar 中包含的 jar 列表?

[英]How to get a list of the jar included in the uberjar build by maven shade plugin?

我有一個(長)列表,其中不應該包含在我的 uber-jar 中,我想要包含的列表,以便我可以處理配置並刪除重復項。

我查看了由mvn package打印的 output 列出了很多

[INFO] Including aaa.bbb:ccc.ddd:jar:x.y.z in the shaded jar

但我很確定當我使用minimizeJar選項時其中一些不包括在內。 並查看 output jar 只允許知道包含的類(很難跟蹤 w.r.t 依賴項)

問題:我使用哪種配置,如何獲得實際合並到 uberjar 中的依賴項列表?

我不熟悉maven-shade-plugin ,但是您嘗試過mvn dependency:tree嗎? 它應該列出項目的所有依賴項及其子依賴項。

編輯:我重新閱讀了您的問題,看來您需要最終 uber-jar 的完整依賴關系樹。 快速瀏覽一下maven-shade-plugin頁面告訴我,任何依賴項都將被打包到 uber-jar 中。 這應該是mvn dependency:tree輸出的內容,但您也可以使用jar tf <uber-jar>.jar 列出 jar 的內容 您可能必須過濾掉父目錄(例如 com/)和清單文件。

這不是我正在尋找的答案,但為了信息共享,這是我為找到要從 shaded-jar 中刪除的依賴項所做的工作:

  • 使用mvn dependency:list > dep.list
    • 然后手動刪除不依賴的行
    • 並對其進行排序
  • 直觀地與部署集群上存在的 jar 列表進行比較
  • 使用mvn dependency:tree和 my head 查找可以刪除的父級大多數依賴項
  • 將它們標記為<scope>provided<scope/>
  • 在陰影插件配置中使用<keepDependenciesWithProvidedScope>false</keepDependenciesWithProvidedScope>

乏味...

暫無
暫無

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

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