通过Maven配置测试环境和开发环境连接不同的数据库

时间:2021-09-14 16:43:36

通过Maven配置测试环境和开发环境连接不同的数据库

  作者及来源: 通灵宝玉 - 博客园    收藏到→_→:
此文来自: 马开东博客 网址:http://www.makaidong.com
 

摘要: 通过Maven配置测试环境和开发环境连接不同的数据库

 
 
 
 

"通过Maven配置测试环境和开发环境连接不同的数据库":关键词通过 maven 配置 测试 环境 开发 环境 连接 不同 其他数据库

通过maven配置测试环境和开发环境连接不同的其他数据库

操作上分3个步骤

1.在数据持久层的pom中定义profiles,为开发和测试环境定义不同的profile

<profiles>
<profile>
<id>dev</id>
<activation>
<activebydefault>true</activebydefault>
</activation>
<properties>
<jdbc.driverclassname>com.mysql.jdbc.driver</jdbc.driverclassname>
<jdbc.url>jdbc:mysql://192.168.1.100:3306/test</jdbc.url>
<jdbc.username>test</jdbc.username>
<jdbc.password >test2011</jdbc.password >
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<jdbc.driverclassname>com.mysql.jdbc.driver</jdbc.driverclassname>
<jdbc.url>jdbc:mysql://192.168.1.200:3306/test</jdbc.url>
        <jdbc.username>test</jdbc.username>
<jdbc.password >test2011</jdbc.password >
</properties>
</profile>
</profiles>

定义id为dev的profile:jdbc.url属性为jdbc:mysql://192.168.1.100:3306/test

定义id为test的profile:jdbc.url属性为jdbc:mysql://192.168.1.200:3306/test

2.在数据持久层的pom中定义resources过滤

其他数据库 的配置放在/src/main/resources和/src/test/resources中,在pom中增加resource过滤

 1 <build>
2 <resources>
3 <resource>
4 <directory>${project.basedir}/src/main/resources</directory>
5 <filtering>true</filtering>
6 </resource>
7 </resources>
8 <testresources>
9 <testresource>
10 <directory>${project.basedir}/src/test/resources</directory>
11 <filtering>true</filtering>
12 </testresource>
13 </testresources>
14 </build>

3.在/src/main/resources和/src/test/resources中定义jdbc连接文件jdbc.properties

1 jdbc.driverclassname=${jdbc.driverclassname}
2
3 jdbc.url=${jdbc.url}
4
5 jdbc.username=${jdbc.username}
6
7 jdbc.password =${jdbc.password }

经过了如上3个步骤后运行mvn命令会执行id为dev的profile(由于在id为dev的配置中增加了<activebydefault>true</activebydefault>的配置)

在mvn命令后增加 -ptest运行,会执行id为test的profile。

经过如上配置后,maven会在src/main/resources/ 和 /src/test/resources 中的文件中(即第3步骤配置的jdbc.properties)查找在profile中定义的属性(如jdbc.properties中的${jdbc.driverclassname}等等)。