springboot打Jar包和War包


一:打JAR包

在工程的pom.xml中添加以下依賴

<build>

  <plugins>

     <plugin>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-maven-plugin</artifactId>

     </plugin>

   </plugins>

</build>

我們目前的工程采用的是jar 的打包方式,所以我們在執行package 命令后,會產生一個jar 包。

我們進入到這個目錄用壓縮軟件打開此jar 包,其中我們發現了一個叫lib 的文件夾,打開lib 文件夾發現此文件夾下全是工程依賴的jar 包,甚至還有tomcat。這種包含有jar 包的jar包,我們稱之為fatJAR( jar )

 

由於fatJAR 本身就包括tomcat , 我們就不需要另外部署了,直接在命令行就可以把我們的應用啟動起來,在命令行,進入到jar 包所在的目錄,我們可以通過以下java –jar命令來執行此jar 包。在控制台會出現啟動信息,在瀏覽器訪問程序

二:打WAR包

spring-boot 默認提供內嵌的tomcat,所以打包直接生成jar 包,用java  -jar 命令就可以啟動。但是,有時候我們更希望一個tomcat 來管理多個項目,這種情況下就需要項目是war 格式的包而不是jar 格式的包。

我們按照以下步驟完成對工程的改造

1)修改pom.xml

將打包方式修改為war

<packaging>war</packaging>

添加依賴

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-tomcat</artifactId>

    <scope>provided</scope>

</dependency>

spring-boot-starter-tomcat 是原來被傳遞過來的依賴,默認會打到包里,所以我們再次引入此依賴,並指定依賴范圍為provided,這樣tomcat 相關的jar就不會打包到war 里了.

2)添加ServletInitializer

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.context.web.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

     @Override

      protected SpringApplicationBuilder configure(SpringApplicationBuilderapplication) {

              return application.sources(Application.class);

      }

}

由於我們采用web3.0 規范,是沒有web.xml 的,而此類的作用與web.xml相同。

3)運行package 打包命令生成war

生成后將war 包放入tomcat,啟動tomcat,測試完成的功能是否可以使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM