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

Spring Boot的Maven插件Spring Boot Maven plugin詳解

 更新時間:2024年01月09日 15:37:40   作者:易生一世  
Spring Boot的Maven插件Spring Boot Maven plugin以Maven的方式提供Spring Boot支持,Spring Boot Maven plugin將Spring Boot應(yīng)用打包為可執(zhí)行的jar或war文件,然后以通常的方式運(yùn)行Spring Boot應(yīng)用,本文介紹Spring Boot的Maven插件Spring Boot Maven plugin,一起看看吧

Spring Boot的Maven插件(Spring Boot Maven plugin)能夠以Maven的方式為應(yīng)用提供Spring Boot的支持,即為Spring Boot應(yīng)用提供了執(zhí)行Maven操作的可能。
Spring Boot Maven plugin能夠?qū)pring Boot應(yīng)用打包為可執(zhí)行的jar或war文件,然后以通常的方式運(yùn)行Spring Boot應(yīng)用。
Spring Boot Maven plugin的最新版本為2017.6.8發(fā)布的1.5.4.RELEASE,要求Java 8, Maven 3.2及以后。

1. Spring Boot Maven plugin的5個Goals

  • spring-boot:repackage,默認(rèn)goal。在mvn package之后,再次打包可執(zhí)行的jar/war,同時保留mvn package生成的jar/war為.origin
  • spring-boot:run,運(yùn)行Spring Boot應(yīng)用
  • spring-boot:start,在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理
  • spring-boot:stop,在mvn integration-test階段,進(jìn)行Spring Boot應(yī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>

3.mvn package spring-boot:repackage說明

Spring Boot Maven plugin的最主要goal就是repackage,其在Maven的package生命周期階段,能夠?qū)vn package生成的軟件包,再次打包為可執(zhí)行的軟件包,并將mvn package生成的軟件包重命名為*.original。

基于上述配置,對一個生成Jar軟件包的項目執(zhí)行如下命令。

mvn package spring-boot:repackage

可以看到生成的兩個jar文件,一個是*.jar,另一個是*.jar.original。

在執(zhí)行上述命令的過程中,Maven首先在package階段打包生成*.jar文件;然后執(zhí)行spring-boot:repackage重新打包,查找Manifest文件中配置的Main-Class屬性,如下所示:

Manifest-Version: 1.0
Implementation-Title: gs-consuming-rest
Implementation-Version: 0.1.0
Archiver-Version: Plexus Archiver
Built-By: sam
Implementation-Vendor-Id: org.springframework
Spring-Boot-Version: 1.5.3.RELEASE
Implementation-Vendor: Pivotal Software, Inc.
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.ericsson.ramltest.MyApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.5.0
Build-Jdk: 1.8.0_131

注意,其中的Main-Class屬性值為org.springframework.boot.loader.JarLauncher;

Start-Class屬性值為com.ericsson.ramltest.MyApplication。

其中com.ericsson.ramltest.MyApplication類中定義了main()方法,是程序的入口。

通常,Spring Boot Maven plugin會在打包過程中自動為Manifest文件設(shè)置Main-Class屬性,事實(shí)上該屬性究竟作用幾何,還可以受Spring Boot Maven plugin的配置屬性layout控制的,示例如下。

    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>1.5.4.RELEASE</version>
      <configuration>
        <mainClass>${start-class}</mainClass>
        <layout>ZIP</layout>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>repackage</goal>
          </goals>
        </execution>
      </executions>
    </plugin>

注意,這里的layout屬性值為ZIP。

layout屬性的值可以如下:

  • JAR,即通常的可執(zhí)行jar

Main-Class: org.springframework.boot.loader.JarLauncher

  • WAR,即通常的可執(zhí)行war,需要的servlet容器依賴位于WEB-INF/lib-provided

Main-Class: org.springframework.boot.loader.warLauncher

  • ZIP,即DIR,類似于JAR

Main-Class: org.springframework.boot.loader.PropertiesLauncher

  • MODULE,將所有的依賴庫打包(scope為provided的除外),但是不打包Spring Boot的任何Launcher。
  • NONE,將所有的依賴庫打包,但是不打包Spring Boot的任何Launcher。

4.integration-test階段中的Spring Boot Maven plugin的start/stop

<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.4.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>

注意,it.skip變量用作是否跳過integration-test的標(biāo)志位。

maven-failsafe-plugin用作integration-test的主要執(zhí)行目標(biāo)。

spring-boot-maven-plugin用以為integration-test提供支持。

執(zhí)行integration-test的Maven命令如下:

mvn verify

或者

mvn verify -Dit.skip=false

參考鏈接:

http://docs.spring.io/spring-boot/docs/1.5.4.RELEASE/maven-plugin/
https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html

到此這篇關(guān)于Spring Boot的Maven插件Spring Boot Maven plugin詳解的文章就介紹到這了,更多相關(guān)Spring Boot Maven plugin內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一鍵解決?IntelliJ?IDEA中Java/Spring?Boot啟動失敗(“命令行過長")問題

    一鍵解決?IntelliJ?IDEA中Java/Spring?Boot啟動失敗(“命令行過長")問題

    IDEA運(yùn)行Java程序時出錯,提示命令行過長,所以下面這篇文章主要介紹了如何一鍵解決?IntelliJ?IDEA中Java/Spring?Boot啟動失敗(“命令行過長“)問題的相關(guān)資料,需要的朋友可以參考下
    2025-11-11
  • Spring Framework 5.0 入門教程

    Spring Framework 5.0 入門教程

    Spring Framework提供了一個簡易的開發(fā)方式,這種開發(fā)方式,將避免那些可能致使底層代碼變得繁雜混亂的大量的屬性文件和幫助類。這篇文章主要介紹了Spring Framework 5.0 入門教程,感興趣的小伙伴們可以參考一下
    2018-05-05
  • RabbitMQ如何直接查看隊列中消息的內(nèi)容

    RabbitMQ如何直接查看隊列中消息的內(nèi)容

    RabbitMQ是一款基于AMQP協(xié)議的開源消息中間件,支持異步通信、消息路由和可靠性保障,這篇文章主要介紹了RabbitMQ如何直接查看隊列中消息的內(nèi)容的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-01-01
  • MyBatis-Plus未集成SQL語句的場景與解決方案

    MyBatis-Plus未集成SQL語句的場景與解決方案

    MyBatis-Plus 提供了強(qiáng)大的 CRUD 操作和條件構(gòu)造器,但在某些復(fù)雜場景下仍需手動編寫 SQL 語句,以下是常見未集成場景及對應(yīng)的實(shí)現(xiàn)方式,需要的朋友可以參考下
    2025-09-09
  • Java字符串中刪除指定子字符串的方法簡介

    Java字符串中刪除指定子字符串的方法簡介

    這篇文章主要介紹了Java字符串中刪除指定子字符串的方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • java中map與實(shí)體類的相互轉(zhuǎn)換操作

    java中map與實(shí)體類的相互轉(zhuǎn)換操作

    這篇文章主要介紹了java中map與實(shí)體類的相互轉(zhuǎn)換操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • IDEA JetBrains Mono字體介紹和安裝教程(詳解)

    IDEA JetBrains Mono字體介紹和安裝教程(詳解)

    這篇文章主要介紹了IDEA JetBrains Mono字體介紹和安裝教程,本給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Java依賴包漏洞檢測命令詳解

    Java依賴包漏洞檢測命令詳解

    這篇文章主要介紹了Java依賴包漏洞檢測命令,你可以在修復(fù)漏洞后快速進(jìn)行依賴項的安全檢查,并生成新的報告,而不需要等待 CVE 數(shù)據(jù)庫的下載和更新,這樣可以顯著提高掃描的效率,需要的朋友可以參考下
    2024-11-11
  • Java實(shí)現(xiàn)url加密處理的方法示例

    Java實(shí)現(xiàn)url加密處理的方法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)url加密處理的方法,涉及java基于base64、編碼轉(zhuǎn)換實(shí)現(xiàn)加密解密相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Java持久化XML文件配置解析

    Java持久化XML文件配置解析

    這篇文章主要為大家介紹了Java持久化XML文件配置解析,當(dāng)你在使用?Java?編程語言?來編寫軟件時,實(shí)現(xiàn)持久化配置的方式。有需要的朋友可以借鑒參考下,希望能夠有所幫助<BR>
    2022-03-03

最新評論

朝阳区| 丘北县| 蓬溪县| 浠水县| 郓城县| 惠东县| 新巴尔虎左旗| 全南县| 工布江达县| 广丰县| 临沂市| 伽师县| 秭归县| 南雄市| 揭阳市| 旌德县| 颍上县| 大竹县| 达孜县| 平遥县| 绥滨县| 乳源| 尼木县| 厦门市| 茌平县| 连南| 罗田县| 金华市| 页游| 岳西县| 和政县| 铜山县| 海淀区| 天台县| 江川县| 白朗县| 紫金县| 甘孜| 平远县| 惠东县| 昆明市|