如果在现在的项目中,需要切换数据库连接配置,使用Maven Profile来配置,可以按如下步骤来进行修改。
(1)在 pinyougou-dao 工程中 src/main/resources 下创建 filter 文件夹
(2)filter 文件夹下创建 db_dev.properties ,用于配置开发环境用到的数据库
env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb?characterEncoding=utf-8
env.jdbc.username=root
env.jdbc.password=123456
(3)filter 文件夹下创建 db_pro.properties
env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb_pro?characterEncoding=utf-8
env.jdbc.username=root
env.jdbc.password=123456
(4)修改 properties 下的 db.properties
jdbc.driver=${env.jdbc.driver}
jdbc.url=${env.jdbc.url}
jdbc.username=${env.jdbc.username}
jdbc.password=${env.jdbc.password}
接下来开始定义Profile,修改pom.xml文件
<properties>
<env>dev</env>
</properties>
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<env>pro</env>
</properties>
</profile>
</profiles>
这里定义了 2 个 profile,分别是开发环境和生产环境
接着继续修改pom.xml,在build节点中添加如下配置:
<filters>
<filter>src/main/resources/filters/db_${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
这里我们利用 filter 实现对资源文件(resouces) 过滤maven filter 可利用指定的xxx.properties 中对应的key=value 对资源文件中的${key}
进行换,最终把资源文件中的 username=${key}
替换成 username=value。
打包
在 pinyougou-dao 工程 执行命令:package -P pro , 解压生成的 jar 包,观察db.properties 配置文件内容,已经替换为生产环境的值。
在 pinyougou-sellergoods-service 工程 执行命令 pageage ,解压生成的 war 包里的pinyougou-dao 的 jar 包,发现也是生成环境的值。
测试
【1】连接生产数据库
(1)在 pinyougou-dao 工程执行命令:install -P pro
(2)在 pinyougou-sellergoods-service:执行命令:tomcat7:run
(3)在 pinyougou-shop-web : 执行命令:tomcat7:run
【2】连接开发数据库
(1)在 pinyougou-dao 工程执行命令:install -P dev (或 install )
(2)在 pinyougou-sellergoods-service:执行命令:tomcat7:run
(3)在 pinyougou-shop-web : 执行命令:tomcat7:run