目录[-]
五、配置profile
1、profile是用来做什么的
Profile能让你为一个特殊的环境自定义一个特殊的构建;profile使得不同环境间构建的可移植性成为可能。不同的构建环境是什么意思?构建环境的两个例子是产品环境和开发环境。当你在开发环境中工作时,你的系统可能被配置成访问运行在你本机的开发数据库实例,而在产品环境中,你的系统被配置成从产品数据库读取数据。Maven能让你定义任意数量的构建环境(构建profile),这些定义可以覆盖pom.xml中的任何配置。你可以配置你的应用程序,在“开发”profile中,访问本地的开发数据库实例,在“产品”profile中,访问产品数据库。Profile也可以通过环境和平台被激活,你可以自定义一个构建,它根据不同的操作系统或者不同的JDK版本有不同的行为。
---《maven权威指南》
我的理解是一个profile就是一种构建环境,我们可以通过激活我们自定义的构建环境来覆盖已有的maven环境配置。
2、配置pom.xml添加properties 和profile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<
profiles
>
<
profile
>
<
id
>dev</
id
>
<
properties
>
<
db.url
>jdbc:mysql://localhost:3306/ddd</
db.url
>
</
properties
>
</
profile
>
<
profile
>
<
id
>test</
id
>
<
properties
>
<
db.url
>jdbc:mysql://192.168.1.235:3306/ddd</
db.url
>
</
properties
>
</
profile
>
</
profiles
>
<
properties
>
<
project.build.sourceEncoding
>UTF-8</
project.build.sourceEncoding
>
<
db.url
>jdbc:mysql://192.168.1.235:3306/ddd</
db.url
>
</
properties
>
|
3、在根目录加入一个资源属性文件baseconfig.properties
1
2
|
db.jdbc.url=${db.url}
baseConfig.jndiName=${db.jndiName}
|
4、配置maven pom.xml使得资源属性文件能共享到maven的properties属性
在build里面加入
1
2
3
4
5
6
7
|
<!-- 属性文件额可以访问maven中的属性 -->
<
resources
>
<
resource
>
<
directory
>src/main/resources</
directory
>
<
filtering
>true</
filtering
>
</
resource
>
</
resources
>
|
5、配置spring配置文件使得spring能够扫描到资源属性文件
1
2
|
<
context:property-placeholder
location
=
"classpath*:META-INF/props/*.properties"
ignore-unresolvable
=
"true"
/>
|
6、修改spring 配置文件改变数据源等配置硬编码的状况
1
2
3
4
5
6
7
8
|
<
bean
id
=
"dataSource"
class
=
"org.apache.commons.dbcp.BasicDataSource"
>
<
property
name
=
"driverClassName"
value
=
"com.mysql.jdbc.Driver"
>
</
property
>
<
property
name
=
"url"
value
=
"${db.jdbc.url}"
>
</
property
>
<
property
name
=
"username"
value
=
"root"
></
property
>
<
property
name
=
"password"
value
=
"root"
></
property
>
</
bean
>
|
7、maven命令选择构建环境
jetty:run -Djetty.port=9080 -Dmaven.test.skip=true -Pdev运行项目
8、从今以后再也不用手工修改配置切换开发、测试、生产环境了。
9、maven小结
关于maven的profile使用细节比较多,但一旦掌握将大大增加我们的工作效率,各位有空可自行研究下。关于maven的使用可参考《maven权威指南》一书。