Spring Boot Maven插件


Spring Boot Maven插件提供了使用Spring Boot應用程序步驟如下:

 

重新打包:創建一個可自動執行的jar或war文件。它可以替換常規工件,或者可以使用單獨的分類器附加到構建生命周期。

運行:運行您的Spring引導應用程序與幾個選項傳遞參數。

啟動和停止:將Spring Boot應用程序集成到集成測試階段,以便應用程序在其之前啟動。

構建信息:生成可由致動器使用的構建信息。

 

重新打包一個應用程序

為了重新打包應用程序,只需要在pom.xml中添加對插件的引用,具體配置如下:

<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生命周期的包階段中構建的jar或war,包括在項目中定義的任何提供的依賴關系。

 

默認情況下會自動排除Devtools(您可以使用excludeDevtools屬性來控制)。為了使這些工作與war包裝相匹配,“spring-boot-devtools”依賴關系必須設置為可選的或提供的范圍。原始(即非可執行)文件默認情況下重命名為.original,但也可以使用自定義分類器保留原始工件。

 

Spring Boot Maven插件會重寫配置,特別是它管理Main-Class和Start-Class條目,因此如果默認值不起作用,則必須配置它們(不在jar插件中)。主類實際上是由引導插件的布局屬性控制的,實例:

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

 

該布局屬性基歸檔類型((jar或者war)。可以在以下布局中使用:

JAR:常規可執行JAR布局。

WAR:可執行WAR布局。提供的依賴關系放置在WEB-INF/lib中,以避免戰爭部署在servlet容器中時發生沖突。

ZIP(DIR的別名):類似於使用PropertiesLauncher的JAR布局。

MODULE:捆綁依賴(不包括提供的范圍)和項目資源,不捆綁引導加載程序。

NONE:捆綁所有依賴項和資源,不捆綁引導加載程序。

 

運行應用程序

Spring Boot Maven插件可以用於從命令行啟動應用程序,具體執行命令如下:

mvn spring-boot:run

 

默認情況下,該應用程序直接從Maven JVM執行。如果需要在分叉進程中運行,可以使用'fork'選項。如果指定了'jvmArguments'或'agent'選項,或者如果存在devtools,則也會發生分岔。

 

如果需要指定一些JVM參數(即用於調試目的),可以使用jvmArguments參數。為方便起見,要啟用的配置文件由特定屬性(配置文件)處理。

 

使用集成測試

為了確保Spring Boot應用程序的生命周期在集成測試中得到妥善管理,可以使用如下所述的啟動和終止:

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

 

還可以配置更高級的設置,以便在設置特定屬性時跳過集成測試:

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

 

注意:如果運行mvn verify -Dit.skip=true,那么集成測試將被完全跳過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM