最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot spring-boot-maven-plugin 參數(shù)配置詳解(最新推薦)

 更新時(shí)間:2025年07月10日 15:01:43   作者:m0_74823408  
文章介紹了Spring Boot Maven插件的5個(gè)核心目標(biāo)(repackage、run、start、stop、build-info)及其應(yīng)用場景,涵蓋應(yīng)用打包、運(yùn)行、集成測試、構(gòu)建信息生成、依賴管理等,同時(shí)說明了如何配置pom.xml、調(diào)試參數(shù)及隨機(jī)端口設(shè)置,感興趣的朋友一起看看吧

一 spring-boot-maven-plugin 插件的5個(gè)Goals

spring-boot:repackage,默認(rèn)goal。在mvn package之后,再次打包可執(zhí)行的jar/war,同時(shí)保留mvn package生成的jar/war為.origin;重新打包存在的jar或者war包從而使他們可以在命令行使用jar -jar來執(zhí)行,使用layout=NONE也可以簡單的打包有嵌套依賴的jar(沒有主類,所以無法執(zhí)行);它可以替代常規(guī)的構(gòu)件或者連接到構(gòu)建生命周期并有獨(dú)立的分級(jí)。

spring-boot:run,運(yùn)行Spring Boot應(yīng)用

spring-boot:start,在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理;啟動(dòng)Spring應(yīng)用程序。和run目標(biāo)不同,該目標(biāo)不會(huì)阻塞,并且允許其他目標(biāo)來操作應(yīng)用程序。這個(gè)目標(biāo)通常是在應(yīng)用程序集成測試套件開始之前和停止之后的繼承測試腳本中使用;集成spring boot應(yīng)用程序到集成測試階段,從而使應(yīng)用程序在集成測試程序之前啟動(dòng)

spring-boot:stop,在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理;停止使用start目標(biāo)啟動(dòng)的spring應(yīng)用程序,通常在測試套件完成后被調(diào)用。;集成spring boot應(yīng)用程序到集成測試階段,從而使應(yīng)用程序在集成測試程序之前啟動(dòng)

spring-boot:build-info,生成Actuator使用的構(gòu)建信息文件build-info.properties

2. 配置pom.xml文件

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
             <version>1.5.4.RELEASE</version>
		</plugin>
	</plugins>
</build>

二 應(yīng)用場景

1 重新打包應(yīng)用

為了重新打包應(yīng)用,只需要在pom文件中的plugin配置中如下:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
         <execution>
            <goals>
                <goal>repackage</goal>
             </goals>
         </execution>
    </executions>
</plugin>

2 運(yùn)行應(yīng)用程序

插件包含了一個(gè)run目標(biāo),該目標(biāo)能夠從命令行執(zhí)行應(yīng)用程序: mvn spring-boot:run

默認(rèn)情況下,應(yīng)用從Maven的JVM運(yùn)行。如果需要在分支中運(yùn)行,則指定fork選項(xiàng)。如果指定了jvmArguments或者agent參數(shù),分支進(jìn)程也會(huì)執(zhí)行。

如果需要制定某些JVM參數(shù)(如為了debug),可以使用jvmArguments參數(shù),更多細(xì)節(jié)參考 調(diào)試應(yīng)用 一章。方便起見,為了啟用總則(profiles),可以使用特定(profiles)屬性來處理,參考 指定使用的配置文件 一章。

Spring Boot 1.3已經(jīng)推出了devtools,它是提升使用Spring Boot應(yīng)用開發(fā)時(shí)經(jīng)驗(yàn)的一個(gè)模塊。啟用該模塊,僅僅在項(xiàng)目中添加如下配置即可:

org.springframework.boot spring-boot-devtools 1.3.0.BUILD-SNAPSHOT true

目前最新是2.0.0.BUILD-SNAPSHOT了。

當(dāng)devtools運(yùn)行時(shí),會(huì)在重新編譯應(yīng)用時(shí)進(jìn)行檢測變化并且自動(dòng)刷新。這不僅包括資源文件,也包括代碼。它也提供了一個(gè)激活的可以重加在的服務(wù)器,所以不管任何改變都會(huì)自動(dòng)出發(fā)瀏覽器刷新。

devtools也可配置成僅僅靜態(tài)資源改變時(shí)刷新瀏覽器(也就是忽略代碼的改變),僅僅增加如下配置:

spring.devtools.remote.restart.enabled=false

在devtools之前,該插件已經(jīng)默認(rèn)支持資源的及時(shí)刷新(hot refreshing),為了支持devtools功能,該插件功能已經(jīng)被禁用。但是可以隨時(shí)恢復(fù)該功能,恢復(fù)功能配置如下;

<build>
……
    <plugins>
    ……
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.3.0.BUILD-SNAPSHOT</version>
            <configuration>
                <addResources>true</addResources>
            </configuration>
        </plugin>
        ……
    </plugins>
    ……
</build>

當(dāng)啟用addResources配置時(shí),任意src/main/resources文件夾在應(yīng)用運(yùn)行時(shí)將被添加到應(yīng)用的類路徑,同時(shí)任意target/class中發(fā)現(xiàn)重復(fù)的資源將被移除。這將在發(fā)布web應(yīng)用時(shí)使資源及時(shí)刷新非常有用。例如,當(dāng)使用HTML,CSS和JavaScript文件時(shí),不用重新編譯應(yīng)用就可以立馬看到變化。這對(duì)前端開發(fā)人員不用下載安裝Java IDE就可以工作也是一種非常有用的方式。

需要注意的是,該特性的副作用是在構(gòu)建時(shí)資源過濾不起作用

為了與repackage目標(biāo)保持一致,run目標(biāo)在構(gòu)件類路徑下文件時(shí)將排除在配置依賴時(shí)排除的依賴配置。更詳細(xì)的的請(qǐng)參考 排除一個(gè)依賴 章節(jié)。

有時(shí)候在運(yùn)行應(yīng)用時(shí)包含測試依賴也是非常有用的。例如,在測試模式下使用根目錄類運(yùn)行應(yīng)用。如果希望這樣做,可以設(shè)置useTestClasspath參數(shù)的值為true。注意:盡在運(yùn)行應(yīng)用時(shí)生效:重新打包目標(biāo)將不會(huì)增加測試依賴到結(jié)果jar和war包中。

3 使用集成測試

雖然可以很容易從測試(測試套件)本身啟動(dòng)Spring Boot程序,但可能需要在構(gòu)建自身來處理。為了確信圍繞集成測試的Spring Boot應(yīng)用的生命周期被合適的管理,可以使用start和stop目標(biāo)。如下配置:

<build>
……
    <plugins>
    ……
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.3.0.BUILD-SNAPSHOT</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>

這樣的設(shè)置現(xiàn)在可以使用failsafe-plugin來運(yùn)行你的集成測試,正如你所期待的哪樣。

更多詳細(xì)細(xì)節(jié),參 考隨機(jī)端口的集成測試的。

4 自定義分類重打包

默認(rèn)情況下,repackage目標(biāo)將使用可執(zhí)行的構(gòu)件來替代原始的構(gòu)件。如果希望保留原是構(gòu)件,并且也使用不同的分類來附屬保留可執(zhí)行的構(gòu)件,可以配置如下:

說明:如果不適用repackage目標(biāo),那么maven執(zhí)行package命令生成的jar包只有一個(gè),名稱為pom.xml里面配置的name(artifactId)-version.jar

如果加入了repackage配置,則maven打包生成的jar包會(huì)被重命名為name-version.jar.original,使用repackage重新打包生成的jar包名稱為name-version.jar,

下面的配置就是如果希望保留原始構(gòu)件生成的jar包名稱不變,同時(shí)也想保留repackage打包生成的jar包,可以自定義命名。

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.BUILD-SNAPSHOT</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

如上配置,那么使用repackage重新生成的包的名稱就是name-version-exec.jar,就是在version后面追加了configuration節(jié)點(diǎn)中的classifier節(jié)點(diǎn)中的值,該值是自定義的。但是如果classifier節(jié)點(diǎn)中什么值都不寫,那么就和默認(rèn)的repackage配置一樣,即原始的構(gòu)件為name-version.jar.original,repackage打包的jar為name-version.jar

5 排除依賴

默認(rèn)情況下,repackage和run目標(biāo)都會(huì)包含所有provided scope的依賴?;赽oot的項(xiàng)目應(yīng)該考慮provided scope的依賴就像容器所需要的依賴包來使應(yīng)用可以運(yùn)行。

**有三種方式可以排除運(yùn)行時(shí)被打包使用的依賴
1、通過指定groupId和artifactId來排除依賴(如果需要可以指定classifier,這是可選的)
2、通過指定artifactId,來排除所有匹配的依賴
3、通過指定groupId,來排除所有屬于該group的依賴
如下通過指定groupId和artifactId排除依賴 **

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.BUILD-SNAPSHOT</version>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>com.foo</groupId>
                            <artifactId>bar</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

如上配置就會(huì)排除對(duì)com.foo:bar的jar包

如下通過指定artifactId,來排除artifactId與此匹配的所有依賴

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.BUILD-SNAPSHOT</version>
                <configuration>
                    <excludeArtifactIds>my-lib,another-lib</excludeArtifactIds>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

如上配置就會(huì)排除所有artifactId為my-lib和another-lib的jar包

如下通過指定groupId,來排除groupId與此匹配的所有依賴

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.BUILD-SNAPSHOT</version>
                <configuration>
                    <excludeGroupIds>com.foo</excludeGroupIds>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

如上配置則排除掉所有g(shù)roupId為com.foo的jar包

###6 調(diào)試應(yīng)用

默認(rèn)情況下,run目標(biāo)和mvn命令是在同一個(gè)進(jìn)程中執(zhí)行的,除非jvm參數(shù)或者客戶端明確指定??梢酝ㄟ^使用fork屬性明確的開啟或者關(guān)閉是否在同一進(jìn)程中執(zhí)行。
如果需要fork這個(gè)進(jìn)程并且進(jìn)行調(diào)試,可以添加需要的JVM參數(shù)來開啟遠(yuǎn)程調(diào)試。如下配置為掛起進(jìn)程,直到有調(diào)試請(qǐng)求從5005端口進(jìn)入
。

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.BUILD-SNAPSHOT</version>
                <configuration>
                    <jvmArguments>
        -Xdebug -Xrunjdwp:transport=dt_sorket,server=y,suspend=y,address=5005
</jvmArguments>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

需要注意的是,只要你指定了這些JVM參數(shù),這個(gè)進(jìn)程就會(huì)自動(dòng)被fork。這些jvm擦?xí)部梢栽诿钚兄兄付?,確認(rèn)書寫正確:

mvn spring-boot:run -Drun.jvmArguments=“-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005”

7 集成測試的隨機(jī)端口

Spring Boot集成測試的一個(gè)好特性是它能夠?yàn)閃eb應(yīng)用分配一個(gè)空閑端口。當(dāng)start目標(biāo)插件使用時(shí),Spring Boot應(yīng)用是被分離執(zhí)行的,這讓傳遞給集成測試程序本身實(shí)際的端口變得非常困難。

如下的配置展示如何使用build-help-plugin插件達(dá)到相同的特性。

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>reserve-tomcat-port</id>
                        <goals>
                            <goal>reserve-network-port</goal>
                        </goals>
                        <phase>process-resources</phase>
                        <configuration>
                            <portNames>
                                <portName>tomcat.http.port</portName>
                            </portNames>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.BUILD-SNAPSHOT</version>
                <executions>
                    <execution>
                        <id>pre-integration-test</id>
                        <goals>
                            <goal>start</goal>
                        </goals>
                        <configuration>
                            <arguments>
                                <argument>--server.port={tomcat.http.port}
                                </test.server.port>
                            </systemPropertyVariables>
                        </configuration>
                    </plugin>
                </plugins>
            </build>

現(xiàn)在可以在任意的集成測試中查詢test.server.port系統(tǒng)屬性來給server創(chuàng)建一個(gè)合適的url。

8 指定使用的配置文件

一個(gè)特定應(yīng)用使用的配置文件可以通過profiles參數(shù)指定。如下配置啟動(dòng)了foo和bar兩個(gè)配置文件:

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.BUILD-SNAPSHOT</version>
                <configuration>
                    <profiles>
                        <profile>foo</profile>
                        <profile>bar</profile>
                    </profiles>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

使用哪個(gè)配置文件也可以通過命令行參數(shù)配置,如果有多個(gè),需要使用都好將他們隔開:

mvn spring-boot:run -Drun.profiles=bar,foo

到此這篇關(guān)于Spring Boot spring-boot-maven-plugin 參數(shù)配置詳解的文章就介紹到這了,更多相關(guān)springboot spring-boot-maven-plugin 參數(shù)配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring MVC深入學(xué)習(xí)之啟動(dòng)初始化過程

    Spring MVC深入學(xué)習(xí)之啟動(dòng)初始化過程

    最近因?yàn)楣ぷ鞯脑蛟趯W(xué)習(xí)Spring MVC,為了更深入的學(xué)習(xí)Spring MVC,下面這篇文章主要給大家介紹了關(guān)于Spring MVC深入學(xué)習(xí)之啟動(dòng)初始化過程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • JustAuth整合第三方登錄組件樣例

    JustAuth整合第三方登錄組件樣例

    這篇文章主要為大家介紹了JustAuth整合第三方登錄組件樣例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • SpringBoot創(chuàng)建WebService方法詳解

    SpringBoot創(chuàng)建WebService方法詳解

    這篇文章主要介紹了SpringBoot如何創(chuàng)建WebService,文中有詳細(xì)的實(shí)現(xiàn)步驟以及示例代碼,對(duì)學(xué)習(xí)或工作有一定的幫助,需要的朋友跟著小編一起來學(xué)習(xí)吧
    2023-05-05
  • springboot 中異步任務(wù),定時(shí)任務(wù),郵件任務(wù)詳解

    springboot 中異步任務(wù),定時(shí)任務(wù),郵件任務(wù)詳解

    這篇文章主要介紹了springboot 與異步任務(wù),定時(shí)任務(wù),郵件任務(wù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Spring Security實(shí)現(xiàn)不同接口安全策略方法詳解

    Spring Security實(shí)現(xiàn)不同接口安全策略方法詳解

    這篇文章主要介紹了Spring Security實(shí)現(xiàn)不同接口安全策略方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 簡單了解Spring IoC相關(guān)概念原理

    簡單了解Spring IoC相關(guān)概念原理

    這篇文章主要介紹了簡單了解Spring IoC相關(guān)概念原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Spring?Boot全局異常處理實(shí)戰(zhàn)指南

    Spring?Boot全局異常處理實(shí)戰(zhàn)指南

    在開發(fā)過程中,異常是不可避免的,Spring?Boot提供了一種簡單而強(qiáng)大的機(jī)制來處理應(yīng)用程序中的異常,即全局異常處理,這篇文章主要介紹了Spring?Boot全局異常處理的相關(guān)資料,需要的朋友可以參考下
    2025-09-09
  • Spring?Cloud?Gateway?2.x跨域時(shí)出現(xiàn)重復(fù)Origin的BUG問題

    Spring?Cloud?Gateway?2.x跨域時(shí)出現(xiàn)重復(fù)Origin的BUG問題

    這篇文章主要介紹了Spring?Cloud?Gateway?2.x跨域時(shí)出現(xiàn)重復(fù)Origin的BUG問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • JAVA多線程并發(fā)下的單例模式應(yīng)用

    JAVA多線程并發(fā)下的單例模式應(yīng)用

    單例模式應(yīng)該是設(shè)計(jì)模式中比較簡單的一個(gè),也是非常常見的,但是在多線程并發(fā)的環(huán)境下使用卻是不那么簡單了,今天給大家分享一個(gè)我在開發(fā)過程中遇到的單例模式的應(yīng)用。
    2017-03-03
  • Idea 2020.2 創(chuàng)建web、Spring項(xiàng)目的教程圖解

    Idea 2020.2 創(chuàng)建web、Spring項(xiàng)目的教程圖解

    這篇文章主要介紹了Idea 2020.2 創(chuàng)建web、Spring項(xiàng)目的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論

鞍山市| 靖西县| 庆元县| 婺源县| 响水县| 胶州市| 郸城县| 许昌市| 山西省| 金堂县| 饶河县| 马山县| 临城县| 绥中县| 松阳县| 繁昌县| 安陆市| 东乡族自治县| 中西区| 开阳县| 鞍山市| 延边| 大庆市| 阳高县| 新化县| 大新县| 常山县| 尼木县| 息烽县| 故城县| 紫阳县| 黔江区| 尚志市| 平泉县| 静宁县| 钟祥市| 东乌| 屯昌县| 赤城县| 栾川县| 额济纳旗|