1. 程式人生 > >springboot結合maven打包釋出

springboot結合maven打包釋出

本篇分享如何使用maven便利我們打springboot的釋出包;我這裡使用的是idea開發工具,首先建立了多個module的專案結構,如圖:

要對多個module的專案做打包,一般情況都是在父級pom中配置打包的外掛,其他module的pom不需要特別的配置,當配置完成後,點選idea中maven工具的package,就能執行一系列打包操作;

這裡先使用maven-jar-plugin外掛,在父級pom中新增配置如下:

 1 <!--通過maven-jar-plugin外掛打jar包-->
 2 <plugin>
 3     <groupId>org.apache.maven.plugins</groupId>
 4
<artifactId>maven-jar-plugin</artifactId> 5 <version>2.4</version> 6 <configuration> 7 <archive> 8 <manifest> 9 <addClasspath>true</addClasspath> 10 <classpathPrefix>lib/</classpathPrefix> 11
<!--main入口--> 12 <mainClass>com.platform.WebApplication</mainClass> 13 </manifest> 14 </archive> 15 <!--包含的配置檔案--> 16 <includes> 17 </includes> 18 <excludes> 19
</excludes> 20 </configuration> 21 </plugin>

上面的配置我們需要注意以下幾個節點:

  • mainClass:我們需要指定main入口,當然這不是必須的,如果同一個project中有多個main入口,那打包的時候才需要,僅僅就一個main入口這個其實忽略;
  • classpathPrefix:指定加入classpath中依賴包所在的字首資料夾名
  • addClasspath:依賴包放加入到classpath中,預設true
  • includes:需要包含在jar中的檔案,一般不配置(注意:如果配置路徑不合適,可能會吧class排除掉)
  • excludes:如果是要做jar包外部配置檔案的話,這裡需要用excludes排除這些配置檔案一起打包在jar中

使用maven-jar-plugin外掛針對專案工程來打包,這個時候通過maven的package命令打包,能看到jar中有一個lib資料夾(預設),其中包含了工程專案中所引入的第三方依賴包,通過java -jar xxx.jar能看到jar成功啟動:

在規範的專案中,一般有dev,test,uat,pro等環境,針對這些個環境需要有不同的配置,springboot中可以通過application-dev|test|...yml來區分不同的配置,僅僅需要在預設的application.yml中加入spring.profiles.active=dev|test...就行了;

這種方式有個不便的地方,比如本地除錯或釋出上線都需要來回修改active的值(當然通過jar啟動時,設定命令列active引數也可以),不是很方便;下面採用在pom中配置profiles,然後通過在idea介面上滑鼠點選選擇啟動所用的配置;首先,在main層建立配置檔案目錄如下結構:

為了區分測試,這裡對不同環境配置檔案設定了server.port來指定不同埠(dev:3082,pro:3182)
然後,在父級pom中配置如下profiles資訊:

 1     <profiles>
 2         <profile>
 3             <id>dev</id>
 4             <!--預設執行配置-->
 5             <activation>
 6                 <activeByDefault>true</activeByDefault>
 7             </activation>
 8             <properties>
 9                 <activeProfile>dev</activeProfile>
10             </properties>
11         </profile>
12         <profile>
13             <id>test</id>
14             <properties>
15                 <activeProfile>test</activeProfile>
16             </properties>
17         </profile>
18         <profile>
19             <id>uat</id>
20             <properties>
21                 <activeProfile>uat</activeProfile>
22             </properties>
23         </profile>
24         <profile>
25             <id>pro</id>
26             <properties>
27                 <activeProfile>pro</activeProfile>
28             </properties>
29         </profile>
30     </profiles>

節點說明:

  • activeByDefault:設定為預設執行配置
  • activeProfile:所選擇的啟動配置,它的值對應上面建立profiles下面的dev|test|pro資料夾

然後,在pom中的build增加resources節點配置:

1 <resources>
2     <!--指定所使用的配置檔案目錄-->
3     <resource>
4         <directory>src/main/profiles/${activeProfile}</directory>
5     </resource>
6 </resources>

此刻我們的配置就完成了,正常情況下idea上maven模組能看到這樣的圖面:

這個時候僅僅只需要我們勾選這些個按鈕就行了,不管是除錯還是最後打包,都按照這個來獲取所需的配置檔案。