本篇分享如何使用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模塊能看到這樣的圖面:
這個時候僅僅只需要我們勾選這些個按鈕就行了,不管是調試還是最后打包,都按照這個來獲取所需的配置文件。