Maven多环境配置
程序员文章站
2022-03-07 08:01:40
多数项目都会有开发环境、测试环境、生产环境,各个环境配置可能都会不一样,于是在构建时,会涉及到环境配置的切换。来回手工修改配置,效率低下,容易出错。可以配置多个含有不同环境配置的Profile,在构建时指定构建环境,达到多环境下快速灵活构建的目的。 项目结构: config.properties: ......
多数项目都会有开发环境、测试环境、生产环境,各个环境配置可能都会不一样,于是在构建时,会涉及到环境配置的切换。来回手工修改配置,效率低下,容易出错。可以配置多个含有不同环境配置的profile,在构建时指定构建环境,达到多环境下快速灵活构建的目的。
项目结构:
config.properties:
jdbc_driver_class=${jdbc.driver.class} jdbc_connection_url=${jdbc.connection.url} jdbc_username=${jdbc.username} jdbc_password=${jdbc.password}
prop下的dev.properties、test.properties、prod.properties分别对应开发、测试、生产环境的配置。
dev.properties:
jdbc.driver.class=com.mysql.jdbc.driver jdbc.connection.url=jdbc:mysql://localhost:3306/mydb jdbc.username=dev_user jdbc.password=123456
test.properties:
jdbc.driver.class=com.mysql.jdbc.driver jdbc.connection.url=jdbc:mysql://192.168.1.25:3306/mydb jdbc.username=test_user jdbc.password=123456
prod.properties:
jdbc.driver.class=com.mysql.jdbc.driver jdbc.connection.url=jdbc:mysql://www.nocoffee.com:3306/mydb jdbc.username=prod_user jdbc.password=123456
pom.xml:
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>com.coffee</groupid> <artifactid>coffee-xw</artifactid> <version>0.0.1-snapshot</version> <packaging>war</packaging> <profiles> <profile> <id>dev</id> <properties> <!-- 自定义属性env,在不同环境有不同的值 --> <env>dev</env> </properties> <activation> <!-- 默认激活dev环境的配置 --> <activebydefault>true</activebydefault> </activation> </profile> <profile> <id>test</id> <properties> <env>test</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles> <build> <!-- 指定filter,根据最终profile下的env属性获取对应的配置文件 --> <filters> <filter>src/main/prop/${env}.properties</filter> </filters> <!-- 开启资源过滤,让maven能解析资源文件中的maven属性 --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> </project>
构建
构建时,指定参数-p加上profile的id来激活对应的profile。也可以通过
执行 mvn clean install -pprod 时,编译后的config.properties内容为:
如上,显示的激活dev环境的profile,执行mvn clean install 时,编译后的config.properties内容为:jdbc_driver_class=com.mysql.jdbc.driver
jdbc_connection_url=jdbc:mysql://localhost:3306/mydb
jdbc_username=dev_user
jdbc_password=123456
jdbc_driver_class=com.mysql.jdbc.driver
jdbc_connection_url=jdbc:mysql://www.nocoffee.com:3306/mydb
jdbc_username=prod_user
jdbc_password=123456