我的需求是要在spring boot的打包包名上加上目标环境,就是 dev qa prod 什么的。
这些是在打包时指定在application.yml文件中的,所以需要去读取yml文件中的属性。
在网上看了一下,基本都是读properties的,没有找到读yml的。
后来通过联想查找,找到一个项目 https://github.com/ozimov/yaml-properties-maven-plugin
解决了我的问题,直接上代码:
<build> <finalName>main-${spring.profiles.active}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>it.ozimov</groupId> <artifactId>yaml-properties-maven-plugin</artifactId> <version>1.1.3</version> <executions> <execution> <phase>initialize</phase> <goals> <goal>read-project-properties</goal> </goals> <configuration> <files> <file>src/main/resources/application.yml</file> </files> </configuration> </execution> </executions> </plugin> </plugins> </build>
其中 ${spring.profiles.active} 就是要读取的属性名称。
src/main/resources/application.yml 是yml文件地址,src是相对pom文件的。
这个方法在
spring-boot-maven-plugin 版本为2.1.2 下有效, 2.1.4下无效