jar、war、ear包的作用和區別
在開發中,我們常常看到jar包,war包和ear,那麼這三種究竟有什麼區別和聯絡呢?我們來看一下。
1.jar包
Java Archive。
包含:class、properties檔案,是檔案封裝的最小單元。打包的主要是Java類的普通庫、資源、輔助檔案(auxiliary files)等。
部署檔案:application-client.xml檔案。
伺服器:應用伺服器(application servers)
作用:jar包是與平臺無關的檔案格式。jar包就是一種封裝,我們不需要知道jar包裡面包含多少.class檔案,也無需瞭解每個檔案的結構,只需要引入jar,就可以去實習想要的結果。在開發時我們經常飲用的通用類,比如一些api,common,我們可以打成jar包,便於存放和大家使用。
2.war包
Web Archive 。
包含:Servlet、JSP頁面、JSP標記庫、JAR庫檔案、HTML/XML文件和其他公用資原始檔,如圖片、音訊檔案等。
部署檔案:web.xml檔案
伺服器:小型服務程式容器(servlet containers)
作用:一個war檔案代表了一個web應用程式,web的目錄和檔案可能非常多,我們就把web應用程式打包成war包,然後把war包部署到伺服器上。一般在專案完成後再建立war包。
3.ear包
Enterprise Archive。
包含:除了包含JAR、WAR以外,還包括EJB元件。
部署檔案:application.xml
伺服器:EJB容器(EJB containers)
作用:我們通常是把EJB打成ear包,ear包括jar包,war包還有EJB元件。簡單來說,ear包括整個專案。ear屬於企業級應用,封裝EJB。
4.三者對比
借用網友的一張圖彙總三者的主要內容:
(1)我們可以清楚的看到jar包括.class檔案,war包括jar,ear包括war和jar。故JAR< WAR < EAR。
(2)jar: 把開發時要引用通用(JAVA)類及資源做封裝,打成包後便於存放管理;
war:一個(web)完整的應用,通常是網站或WEB平臺,打成包部署到容器中;
ear: 企業級應用,實際上EAR包中包含WAR包和幾個企業級專案的配置檔案而已,伺服器中介軟體通常選擇WebSphere等都會使用EAR包。通常是EJB打成ear包。
基礎的知識也是不能忽略的,希望可以幫助大家理解。