Spring Boot Maven插件使用詳解
Spring Boot Maven插件提供了使用Spring Boot應(yīng)用程序步驟如下:
重新打包:創(chuàng)建一個(gè)可自動(dòng)執(zhí)行的jar或war文件。它可以替換常規(guī)工件,或者可以使用單獨(dú)的分類(lèi)器附加到構(gòu)建生命周期。
運(yùn)行:運(yùn)行您的Spring引導(dǎo)應(yīng)用程序與幾個(gè)選項(xiàng)傳遞參數(shù)。
啟動(dòng)和停止:將Spring Boot應(yīng)用程序集成到集成測(cè)試階段,以便應(yīng)用程序在其之前啟動(dòng)。
構(gòu)建信息:生成可由致動(dòng)器使用的構(gòu)建信息。
重新打包一個(gè)應(yīng)用程序
為了重新打包應(yīng)用程序,只需要在pom.xml中添加對(duì)插件的引用,具體配置如下:
<build> ... <plugins> ... <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.6.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> ... </plugins> ... </build>
重新打包在Maven生命周期的包階段中構(gòu)建的jar或war,包括在項(xiàng)目中定義的任何提供的依賴(lài)關(guān)系。
默認(rèn)情況下會(huì)自動(dòng)排除Devtools(您可以使用excludeDevtools屬性來(lái)控制)。為了使這些工作與war包裝相匹配,“spring-boot-devtools”依賴(lài)關(guān)系必須設(shè)置為可選的或提供的范圍。原始(即非可執(zhí)行)文件默認(rèn)情況下重命名為.original,但也可以使用自定義分類(lèi)器保留原始工件。
Spring Boot Maven插件會(huì)重寫(xiě)配置,特別是它管理Main-Class和Start-Class條目,因此如果默認(rèn)值不起作用,則必須配置它們(不在jar插件中)。主類(lèi)實(shí)際上是由引導(dǎo)插件的布局屬性控制的,實(shí)例:
<build> ... <plugins> ... <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.6.RELEASE</version> <configuration> <mainClass>${start-class}</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> ... </plugins> ... </build>
該布局屬性基歸檔類(lèi)型((jar或者war)??梢栽谝韵虏季种惺褂茫?br />
JAR:常規(guī)可執(zhí)行JAR布局。
WAR:可執(zhí)行WAR布局。提供的依賴(lài)關(guān)系放置在WEB-INF/lib中,以避免戰(zhàn)爭(zhēng)部署在servlet容器中時(shí)發(fā)生沖突。
ZIP(DIR的別名):類(lèi)似于使用PropertiesLauncher的JAR布局。
MODULE:捆綁依賴(lài)(不包括提供的范圍)和項(xiàng)目資源,不捆綁引導(dǎo)加載程序。
NONE:捆綁所有依賴(lài)項(xiàng)和資源,不捆綁引導(dǎo)加載程序。
運(yùn)行應(yīng)用程序
Spring Boot Maven插件可以用于從命令行啟動(dòng)應(yīng)用程序,具體執(zhí)行命令如下:
mvn spring-boot:run
默認(rèn)情況下,該應(yīng)用程序直接從Maven JVM執(zhí)行。如果需要在分叉進(jìn)程中運(yùn)行,可以使用'fork'選項(xiàng)。如果指定了'jvmArguments'或'agent'選項(xiàng),或者如果存在devtools,則也會(huì)發(fā)生分岔。
如果需要指定一些JVM參數(shù)(即用于調(diào)試目的),可以使用jvmArguments參數(shù)。為方便起見(jiàn),要啟用的配置文件由特定屬性(配置文件)處理。
使用集成測(cè)試
為了確保Spring Boot應(yīng)用程序的生命周期在集成測(cè)試中得到妥善管理,可以使用如下所述的啟動(dòng)和終止:
<build> ... <plugins> ... <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.6.RELEASE</version> <executions> <execution> <id>pre-integration-test</id> <goals> <goal>start</goal> </goals> </execution> <execution> <id>post-integration-test</id> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin> ... </plugins> ... </build>
還可以配置更高級(jí)的設(shè)置,以便在設(shè)置特定屬性時(shí)跳過(guò)集成測(cè)試:
<properties> <it.skip>false</it.skip> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <skip>${it.skip}</skip> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.6.RELEASE</version> <executions> <execution> <id>pre-integration-test</id> <goals> <goal>start</goal> </goals> <configuration> <skip>${it.skip}</skip> </configuration> </execution> <execution> <id>post-integration-test</id> <goals> <goal>stop</goal> </goals> <configuration> <skip>${it.skip}</skip> </configuration> </execution> </executions> </plugin> </plugins> </build>
注意:如果運(yùn)行mvn verify -Dit.skip=true,那么集成測(cè)試將被完全跳過(guò)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java使用jdbc連接數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)例
這篇文章主要為大家詳細(xì)介紹了java使用jdbc連接數(shù)據(jù)庫(kù)的簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Spring-data-redis操作redis cluster的示例代碼
這篇文章主要介紹了Spring-data-redis操作redis cluster的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10詳解Spring Cloud負(fù)載均衡重要組件Ribbon中重要類(lèi)的用法
本篇文章主要介紹了詳解Spring Cloud負(fù)載均衡重要組件Ribbon中重要類(lèi)的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過(guò)程解析
這篇文章主要介紹了Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08SpringMVC 重新定向redirect請(qǐng)求中攜帶數(shù)據(jù)方式
這篇文章主要介紹了SpringMVC 重新定向redirect請(qǐng)求中攜帶數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12從實(shí)戰(zhàn)角度詳解Disruptor高性能隊(duì)列
這篇文章主要介紹了從實(shí)戰(zhàn)角度詳解Disruptor高性能隊(duì)列,對(duì)正在學(xué)習(xí)這方面知識(shí)的小伙伴有很大的幫助,感興趣的小伙伴快來(lái)一起學(xué)習(xí)吧2021-08-08