1)我在Maven的Eclipse中的pom.xml項目中包含了一個Spring Context依賴項。在Maven中,我的最終構建和安裝的.JAR中包含了依賴項二進制文件嗎?
2)我跑項目上的「安裝」階段,並妥善建成,該項目被安裝到我的本地庫的.m2
3)當我拉開我的.JAR,我只看到我的單我創建的自定義類。
這帶來了兩個問題:
1)外部的依賴類只在您的最終建成罐子如果從它一類的類中物理實例包括在內?
和
2)爲什麼,當我進口SpringContextAnnotationConfig類到類,並實例化它的一個實例,並安裝我的項目,我還是隻看到了我的自定義類,當我拉開我的.JAR。這是不尋常的嗎?或者,SpringContextAnnotationConfig現在剛剛寫入.class二進制文件,因此當我將.jar部署到另一個JVM時,它在我的定製構建的.class二進制文件中擁有它的所有依賴關係?
感謝
SOLUTION:
的問題是,我期待行家爲一個JAR輸出做同樣的,因爲它會爲一場戰爭。當使用webapp archetype生成WAR文件時,Maven自動將所需的依賴項jar打包到WEB-INF目錄中。
我基本上試圖瞭解遠程全新服務器上的容器如何運行我的類,而無需依賴項二進制文件。我試圖運行一個用於生成JAR文件的maven,而這個文件並沒有包含我的依賴關係。但是,當我運行maven install來構建一個WAR文件時,我的依賴關係已經準備好部署了。
1)是和2)除非你真的創建了一個可執行的jar或war文件,這些庫將不會被包含。它只是註冊依賴關係,但只包含在打包的.war或.jar中。 – rptmat57
jar將僅爲您的代碼庫創建。因爲外部依賴關係本身不需要再創建。你可以使用zip壓縮包。運行時將所有依賴關係添加到classpath – jos