maven properties 动态转换
Posted 亲爱的阿道君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven properties 动态转换相关的知识,希望对你有一定的参考价值。
可以将不同profile的属性直接配置在顶级pom.xml中,这样的优点是各个module可以共用配置的属性。
第一步,新建Spring Boot项目,修改pom.xml,添加<profiles/>配置如下:
<profiles> <profile> <id>dev</id> <properties> <username>zhangsan</username> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>prod</id> <properties> <username>lisi</username> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> </profiles>
这里定义了dev和prod两个profile,其中默认激活的是dev。每个profile中通过<properties/>设置了属性。
第二步,修改编译设置。这里的<filtering>true</filtering>指定了使用pom.xml中profile下的属性替换src/main/resources/下${xxx}方式的属性引用:
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
第三步,在一个module中新建src/main/resources/application.properties,内容为:
username=${username}
第四步,在编译命令中使用-P参数指定profile如:mvn clean install -DskipTests –Pdev,来完成指定profile环境的编译。
查看module中的target/classes/application.properties文件,发现当-Pdev时,文件中username=zhangsan,当-Pprod时,文件中username=lisi
以上是关于maven properties 动态转换的主要内容,如果未能解决你的问题,请参考以下文章