久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

 青_春 2018-02-27

Spring Boot的Maven插件(Spring Boot Maven plugin)能夠以Maven的方式為應用提供Spring Boot的支持,,即為Spring Boot應用提供了執(zhí)行Maven操作的可能,。
Spring Boot Maven plugin能夠將Spring Boot應用打包為可執(zhí)行的jar或war文件,然后以通常的方式運行Spring Boot應用,。
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,,默認goal,。在mvn package之后,再次打包可執(zhí)行的jar/war,,同時保留mvn package生成的jar/war為.origin
  • spring-boot:run,,運行Spring Boot應用
  • spring-boot:start,在mvn integration-test階段,,進行Spring Boot應用生命周期的管理
  • spring-boot:stop,,在mvn integration-test階段,進行Spring Boot應用生命周期的管理
  • spring-boot:build-info,,生成Actuator使用的構建信息文件build-info.properties

2. 配置pom.xml文件

[html] view plain copy
  1. <build>  
  2.     <plugins>  
  3.         <plugin>  
  4.             <groupId>org.springframework.boot</groupId>  
  5.             <artifactId>spring-boot-maven-plugin</artifactId>  
  6.                         <version>1.5.4.RELEASE</version>  
  7.         </plugin>  
  8.     </plugins>  
  9. </build>  


3.mvn package spring-boot:repackage說明

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

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

[html] view plain copy
  1. mvn package spring-boot:repackage  

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

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

[html] view plain copy
  1. Manifest-Version: 1.0  
  2. Implementation-Title: gs-consuming-rest  
  3. Implementation-Version: 0.1.0  
  4. Archiver-Version: Plexus Archiver  
  5. Built-By: exihaxi  
  6. Implementation-Vendor-Id: org.springframework  
  7. Spring-Boot-Version: 1.5.3.RELEASE  
  8. Implementation-Vendor: Pivotal Software, Inc.  
  9. Main-Class: org.springframework.boot.loader.JarLauncher  
  10. Start-Class: com.ericsson.ramltest.MyApplication  
  11. Spring-Boot-Classes: BOOT-INF/classes/  
  12. Spring-Boot-Lib: BOOT-INF/lib/  
  13. Created-By: Apache Maven 3.5.0  
  14. 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文件設置Main-Class屬性,事實上該屬性究竟作用幾何,,還可以受Spring Boot Maven plugin的配置屬性layout控制的,示例如下,。

[html] view plain copy
  1. <plugin>  
  2.   <groupId>org.springframework.boot</groupId>  
  3.   <artifactId>spring-boot-maven-plugin</artifactId>  
  4.   <version>1.5.4.RELEASE</version>  
  5.   <configuration>  
  6.     <mainClass>${start-class}</mainClass>  
  7.     <layout>ZIP</layout>  
  8.   </configuration>  
  9.   <executions>  
  10.     <execution>  
  11.       <goals>  
  12.         <goal>repackage</goal>  
  13.       </goals>  
  14.     </execution>  
  15.   </executions>  
  16. </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

[html] view plain copy
  1. <properties>  
  2.   <it.skip>false</it.skip>  
  3. </properties>  
  4. <build>  
  5.   <plugins>  
  6.     <plugin>  
  7.       <groupId>org.apache.maven.plugins</groupId>  
  8.       <artifactId>maven-failsafe-plugin</artifactId>  
  9.       <configuration>  
  10.         <skip>${it.skip}</skip>  
  11.       </configuration>  
  12.     </plugin>  
  13.     <plugin>  
  14.       <groupId>org.springframework.boot</groupId>  
  15.       <artifactId>spring-boot-maven-plugin</artifactId>  
  16.       <version>1.5.4.RELEASE</version>  
  17.       <executions>  
  18.         <execution>  
  19.           <id>pre-integration-test</id>  
  20.           <goals>  
  21.             <goal>start</goal>  
  22.           </goals>  
  23.           <configuration>  
  24.             <skip>${it.skip}</skip>  
  25.           </configuration>  
  26.         </execution>  
  27.         <execution>  
  28.           <id>post-integration-test</id>  
  29.           <goals>  
  30.             <goal>stop</goal>  
  31.           </goals>  
  32.           <configuration>  
  33.             <skip>${it.skip}</skip>  
  34.           </configuration>  
  35.         </execution>  
  36.       </executions>  
  37.     </plugin>  
  38.   </plugins>  
  39. </build>  
注意,,it.skip變量用作是否跳過integration-test的標志位。

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

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


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

mvn verify

或者

mvn verify -Dit.skip=false



參考鏈接:

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

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多