前言:对于一个项目,开发和生产环境之间会使用不同的配置文件,最简单的例子就是数据库连接池的配置了。当然,可以在打包上线前对配置文件进行替换,不过这也太low了吧。
简单的pom.xml中的配置内容
比如我们在maven项目中引入了内嵌式的tomcat插件(当然打包方式是要war包),如下代码
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
8821
/
指定了端口号是8821,启动项目后(在idea右边的maven project),就可以使用8821端口访问。
8821是我们开发的端口,如果我们想打包上传到服务器,然后就修改这个端口为8891。
首先在pom.xml使用properties标签来定义端口号
然后就创建多个环境,多个环境对tomcat_port这个属性进行定义
dev
8821
pro
8821
然后修改我们的tomcat7系列的maven命令,在后边添加参数:
-P 环境id,在idea中,右键这个maven命令,就可以设置了
设置完后,点击运行,
除了tomcat:run 外,其他的maven命令,如:
package -P dev
install -P pro
这些都是可以的。
不同环境下使用不同的数据库配置文件
和上边的方法类似,不同的是它会引入项目中的properties配置文件
首先,src/main/resources下创建dbprops文件夹,在这个文件夹下创建一个db_dev.properties,内容如下:
#这个env前缀可以自定义,也可以不用
env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/tb_dev?characterEncoding=utf-8
env.jdbc.username=dev
env.jdbc.password=dev
也创建一个db_pro.properties
#这个env前缀可以自定义,也可以不用
env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/tb_pro?characterEncoding=utf-8
env.jdbc.username=pro
env.jdbc.password=pro
然后,修改我们src/main/resources下的db.properties配置文件,这个配置文件就是我们之前的数据库连接配置文件(因为datasource中指定的路径就是这个配置文件)
#之前写的是确定的地址,这回就使用变量
jdbc.driver=${env.jdbc.driver}
jdbc.url=${env.jdbc.url}
jdbc.username=${env.jdbc.username}
jdbc.password=${env.jdbc.password}
在pom.xml中添加属性
dev
在pom.xml中定义profile
dev
dev
pro
pro
在build标签中添加一个filters和resource指令
src/main/resources/dbprops/db_${db_env}.properties
src/main/resources
true
好了,我们这使用指定打包
package -P pro
然后用触压生成的war包,打开WEB-INF\classes\db.properties文件可以看到