在pom.xml中配置profiles标签
<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> <activation> <properties> <build.profile>dev</build.profile> <packageing.type>jar</packageing.type> </properties> <profile/> <profile> <id>test</id> <activation> <activeByDefault>false</activeByDefault> <activation> <properties> <build.profile>test</build.profile> <packageing.type>war</packageing.type> </properties> <profile/> <profile> <id>prod</id> <activation> <activeByDefault>false</activeByDefault> <activation> <properties> <build.profile>prod</build.profile> <packageing.type>jar</packageing.type> </properties> <profile/> </profiles>
不显式指定环境时, 会取 activeByDefault true 的环境变量, 需要注意的是: 没指定 activeByDefault true 的其他相同 profile id 的 properties 是不会生效的
<build> <finalName>bdcs</finalName> <resources> <resource> <directory>src/main/resources</directory> </resource> <resource> <directory>src/main/profiles/${build.profile}</directory> </resource> </resources> </build>
profiles标签
<profiles> <!-- 开发环境 --> <profile> <id>dev</id> <properties> <env>dev</env> </properties> </profile> <!-- 生产环境 --> <profile> <id>publish</id> <properties> <env>publish</env> </properties> </profile> <!-- 本地环境 --> <profile> <id>local</id> <properties> <env>local</env> </properties> <!--默认启用--> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> </profiles>
build标签
<build> <!-- 指定使用filter --> <filters> <filter>src/main/resources/profiles/${env}/env.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <excludes> <exclude>profiles/**</exclude> </excludes> <filtering>true</filtering> </resource> </resources> </build>
如果使用idea,直接打开右侧的maven在Profiels下勾选切换即可
如果使用命令行则通过添加后缀 -P
clean -U package -P dev -DskipTests=true -f pom.xml
Maven Profiles 多环境配置(开发、测试、生产)
原文:https://www.cnblogs.com/YC-L/p/14865462.html