1. 程式人生 > >Maven專案打包及jar包與war包的區別

Maven專案打包及jar包與war包的區別

今日部署專案打包,maven專案,老大給了倆bat啟動檔案,路徑配好後,打包一直有毛病,原因未知,只好用傳統方式繼續,順手記錄下打包方法及war包及jar包的區別,看了些文章,摘出一些供以後學習檢視

1.打包方式(war包)

Maven install  打包:


出現 build success 說明打包成功,日誌中會有路徑輸出


今天看文章說還有第二種方法,沒用過,看過程手動命令型,人懶沒試驗,看圖和第一種沒啥大的區別

貼個連結:https://blog.csdn.net/u012586389/article/details/67635480

2.打包(jar包)

方法同war包一樣,主要是通過pom.xml決定你要打什麼包


這裡是jar,右鍵 run as   或者 debug as    maven install打包


路徑輸出是jar包,再來一個war包,一會兒一起看打好的包


右鍵走一個


完成,去路徑下看看


沒毛病,那麼問題來了,jar包和war包有啥區別呢,這裡有篇文章,感覺好理解:

JavaSE程式可以打包成Jar包(J其實可以理解為Java了),而JavaWeb程式可以打包成war包(w其實可以理解為Web了)。然後把war釋出到Tomcat的webapps目錄下,Tomcat會在啟動時自動解壓war包。

JAR(Java Archive,Java 歸檔檔案)是與平臺無關的檔案格式,它允許將許多檔案組合成一個壓縮檔案。為 J2EE 應用程式建立的 JAR 檔案是 EAR 檔案(企業 JAR 檔案)。

JAR 檔案格式以流行的 ZIP 檔案格式為基礎。與 ZIP 檔案不同的是,JAR 檔案不僅用於壓縮和釋出,而且還用於部署和封裝庫、元件和外掛程式,並可被像編譯器和 JVM 這樣的工具直接使用。在 JAR 中包含特殊的檔案,如 manifests 和部署描述符,用來指示工具如何處理特定的 JAR。

如果一個Web應用程式的目錄和檔案非常多,那麼將這個Web應用程式部署到另一臺機器上,就不是很方便了,我們可以將Web應用程式打包成Web 歸檔(WAR)檔案,這個過程和把Java類檔案打包成JAR檔案的過程類似。利用WAR檔案,可以把Servlet類檔案和相關的資源集中在一起進行釋出。在這個過程中,Web應用程式就不是按照目錄層次結構來進行部署了,而是把WAR檔案作為部署單元來使用。

一個WAR檔案就是一個Web應用程式,建立WAR檔案,就是把整個Web應用程式(不包括Web應用程式層次結構的根目錄)壓縮起來,指定一個.war副檔名。下面我們將第2章的Web應用程式打包成WAR檔案,然後釋出

要注意的是,雖然WAR檔案和JAR檔案的檔案格式是一樣的,並且都是使用jar命令來建立,但就其應用來說,WAR檔案和JAR檔案是有根本區別的。JAR檔案的目的是把類和相關的資源封裝到壓縮的歸檔檔案中,而對於WAR檔案來說,一個WAR檔案代表了一個Web應用程式,它可以包含 Servlet、HTML頁面、Java類、影象檔案,以及組成Web應用程式的其他資源,而不僅僅是類的歸檔檔案。

我們什麼時候應該使用WAR檔案呢?在開發階段不適合使用WAR檔案,因為在開發階段,經常需要新增或刪除Web應用程式的內容,更新 Servlet類檔案,而每一次改動後,重新建立WAR檔案將是一件浪費時間的事情。在產品釋出階段,使用WAR檔案是比較合適的,因為在這個時候,幾乎不需要再做什麼改動了。

在開發階段,我們通常將Servlet原始檔放到Web應用程式目錄的src子目錄下,以便和Web資原始檔區分。在建立WAR檔案時,只需要將src目錄從Web應用程式目錄中移走,就可以打包了