簡體   English   中英

如何在我的Maven最終構建和安裝的.JAR文件中包含依賴項二進制文件?

[英]How are dependency binaries included in my final built and installed .JAR in Maven?

1)我在使用Maven的Eclipse的pom.xml項目中加入了Spring Context依賴項。

2)我在項目上運行了“安裝”階段,並正確構建了該項目,並將該項目安裝到了本地.m2存儲庫中

3)解壓縮.JAR時,只看到創建自定義的單個類。

這帶來了兩個問題:

1)如果外部依賴項類僅在您的類中被物理實例化,則它們是否僅包含在最終構建的jar中?

2)怎么了,當我將SpringContextAnnotationConfig類導入到我的類中,並實例化它的實例,並安裝我的項目時,我仍然只能在解壓縮.JAR時看到我的自定義類。 這不尋常嗎? 還是現在只是將SpringContextAnnotationConfig寫入.class二進制文件中,以便當我將.jar部署到另一個JVM時,它的所有依賴項都位於我自定義的.class二進制文件中?

謝謝

解決方案

問題是我期望Maven對JAR輸出所做的與對WAR所做的相同。 使用webapp原型生成WAR文件時,Maven自動將所需的依賴項jar打包到WEB-INF目錄中。

我基本上是想了解遠程全新服務器上的容器如何在沒有依賴二進制文件的情況下運行我的類。 我試圖運行構建為生成JAR文件的Maven,但最終並沒有包括我的依賴項。 但是,當我運行maven install生成WAR文件時,我的依賴項就可以部署了。

  1. 不,它們從不包括在內(除非您使用執行此操作的特殊插件)。

  2. 請參閱1。

如果您將此工件添加為對其他項目的依賴項,則會自動添加其依賴項(及其依賴項等)(這是可控制的,因此您可以例如排除它們或更改版本)。 但是它們來自pom.xml ,而不是.jar本身。 這也允許不大量下載相同的庫。

有關構建胖罐子的信息,請參見例如如何使用Maven創建具有依賴項的可執行JAR? 專門針對Spring,您可能需要Spring Boot

暫無
暫無

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

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