Spring boot Maven 項目打包
使用Maven 實現多環境 test dev prod 打包
項目的結構
在下圖中可用看出,我們打包時各個環境需要分開,采用 application-環境.yml 的方式命名
環境配置開始
首先我們需要在application.yml文件中配置 spring.profiles.active = @profileActive@這里的proofileAction 是我們下面要用到的變量
spring:
profiles:
active: @profileActive@
pom.xml
我們需要在pom中指定finalname的名稱,當然對於打包來說名稱並不影響。
實際上 不配置 resources節點也是可以的,在pom添加只是為了在打包中少幾個配置文件。
當然你可以通過include來選擇需要導入哪個文件。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <!-- 打包后文件名稱:項目名-環境-版本 --> <finalName>${project.artifactId}-${profileActive}-${project.version}</finalName> <resources> <resource> <directory>src/main/resources</directory> <!-- 開啟過濾替換功能--> <filtering>true</filtering> <includes> <!-- 項目打包完成的包中只包含當前環境文件 --> <include>application.yml</include> <include>application-${profileActive}.yml</include> </includes> </resource> </resources> </build> <!-- 多環境配置方案 --> <profiles> <profile> <id>dev</id> <properties> <profileActive>dev</profileActive> </properties> <activation> <!-- 默認情況下使用dev開發配置 如 打包時不包含 -p 參數--> <activeByDefault>true</activeByDefault> </activation> </profile> <!-- 打包命令package -P test --> <profile> <id>test</id> <properties> <profileActive>test</profileActive> </properties> </profile> <!-- 打包命令package -P prod --> <profile> <id>prod</id> <properties> <profileActive>prod</profileActive> </properties> </profile> </profiles>
在pom中profiles節點才是分項目打包的關鍵,通過profile節點可以在打包時動態的去更新我們在application.xml中的配置值
在編譯項目時,可以使用 -P 參數指定需要使用的 profile 的 id,比如下面命令將會使用 dev profile:
mvn clean package -P dev
如果想使用test,只需要改為以下即可
mvn clean package -Ptest
假如不指定 -P 參數的話,則會使用 activeByDefault=true 的一項(即 dev)。
原文:https://blog.csdn.net/qq_22327273/article/details/83548138
參考文檔:
LuckyZhouStar Maven中profile和filtering實現多個環境下的屬性過濾