棧長在以前的文章分享過關於 Spring Boot 打包運行的兩篇文章:html
不過一直沒機會對 Spring Boot Maven 插件作詳細介紹。java
Spring Boot 對 Maven 一直支持很友好,棧長也一直在用 Maven 進行依賴和項目管理,那麼今天就講一下這個插件的做用,很是有用!面試
有了 Spring Boot Maven Plugin
這個插件,咱們能夠將項目打成可執行的 jar 包(*.jar)以及 war 包(*.war),能夠幫助咱們很方便的運行 Spring Boot 應用。spring
官方地址:後端
https://docs.spring.io/spring-boot/docs/current/maven-plugin/index.html多線程
主要包括如下幾個目標(goals)
- spring-boot:run
能夠不用打包,直接運行 Spring Boot 應用。架構
- spring-boot:repackage
能夠打成可執行的運行包(*.jar/*.war)jvm
- spring-boot:start/ spring-boot:stop
用於管理 Spring 應用程序的生命週期(例如:用於集成測試)。maven
- spring-boot:build-info
用於生成構建信息,用於 Spring Boot Actuator。spring-boot
如何使用
下面主要講一下前面兩種 goal
的使用,後面兩種用的比較少。
集成 Spring Boot Maven Plugin 插件:
<build> ... <plugins> ... <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.6.RELEASE</version> </plugin> ... </plugins> ... </build>
一、直接運行 Spring Boot 應用
在 Maven 命令行使用:
mvn spring-boot:run
若是在 IDE 開發工具中,能夠省去 mvn
命令:
固然,咱們能夠直接運行 main class,但使用 Maven 插件能夠有更多的功能特性,好比:切換不一樣環境配置(Profile), 資源替換 Maven Resource 插件的結合使用。
默認狀況下,插件運行在一個新進程中,命令行設置的 JVM 參數是不生效的,須要單獨指定:
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
你也還能夠指定其餘參數:
- systemPropertyVariables:系統屬性變量
- environmentVariables:環境變量
除此以外,其餘 JVM 參數,均可以在命令後面指定。
二、打成可執行包
來看一個完整示例:
<build> ... <plugins> ... <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.6.RELEASE</version> <configuration> <mainClass>${start-class}</mainClass> <layout>jar</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec</classifier> </configuration> </execution> </executions> </plugin> ... </plugins> ... </build>
如下幾個參數都是可選的。
repackage:
最主要的是要添加 repackage
goal,用來從新打包。
layout:
layout 屬性根據項目類型默認是:jar/war,具體能夠設置如下幾種:
- JAR:可執行 jar 包;
- WAR:可執行 war 包;
- ZIP(別名:DIR):和 jar 包類似,使用的是:PropertiesLauncher;
- NONE:打包全部依賴項和項目資源。不綁定任何啓動加載器;
classifier:
默認狀況下只會打一個包,可是若是這個模塊既是其餘模板的依賴,自身又須要打成可執行的運行包,那就須要用這個標籤另外指定一個別名包,如:
- xxx.jar
- xxx-exec-jar
具體參考:
https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/repackage-classifier.html
Spring Boot 打包這個插件常常會用到,你們仍是要學會使用它,否則出去面試,面試官一問 Spring Boot 項目如何打包,你就一臉 MB 了。
另外,你們若是對 Maven 不熟悉的能夠在公衆號Java技術棧後臺回覆:Maven,我以前也分享過一系列核心教程。
好了,今天的分享就到這裏了,更多使用的方法你們均可以官方學習,以爲本文不錯別忘了點個在看和轉發哦!
推薦去個人博客閱讀更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
以爲不錯,別忘了點贊+轉發哦!