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,測試完成的功能是否可以使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章