maven profile 和 spring boot profile的區別
阿新 • • 發佈:2018-12-22
maven profile 配置
maven profile 和 spring boot profile的區別
看看哪個適合你的使用場景,這兩個是不一樣的使用場景,具體細節點選上面的連結。
application.yml檔案存放通用配置。下面三個檔案分別對應,開發,測試,生產環境
application-dev.yml application-uat.yml application-prod.yml
都在resource目錄下面。
1, application.yml
spring:
profiles:
active:
#打包時需要修改此屬性,需區分引用dev uat prod等環境的配置檔案
- @ [email protected]
2, pom.xml
<!--配置多環境打包--> <profiles> <!--開發環境--> <profile> <id>dev</id> <properties> <build.profile.id>dev</build.profile.id> <profileActive>dev</profileActive> </properties> <activation> <!--如果不指定,則預設使用dev開發環境配置--> <activeByDefault>true</activeByDefault> </activation> </profile> <!-- 測試環境--> <profile> <id>uat</id> <properties> <build.profile.id>uat</build.profile.id> <profileActive>uat</profileActive> </properties> </profile> <!--生產環境--> <profile> <id>prod</id> <properties> <build.profile.id>prod</build.profile.id> <profileActive>prod</profileActive> </properties> </profile> </profiles> <build> <!-- profile對資源的操作 --> <resources> <resource> <directory>src/main/resources</directory> <excludes> <!--在打包的時候先去掉所有的yml檔案--> <exclude>application*.yml</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <!-- 是否替換@
[email protected]表示的maven properties屬性值 --> <filtering>true</filtering> <!--在打包的時候,根據-P引數,加上需要的yml配置檔案--> <includes> <include>application.yml</include> <include>application-${profileActive}.yml</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
3, 打包命令
// -P 後面的uat、prod、dev會自動打包相應的配置檔案到jar包中。
mvn clean install -DskipTests -P uat
4, 結論,
maven profile 是在build time 生成,生成的jar包是不一樣的。
網上看的,適用於由於生產環境、測試環境,開發環境的伺服器配置不同。