`
TimerBin
  • 浏览: 355580 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

profile filters properties 无法替换问题总结

阅读更多

基于maven pom配置中的profiles配置针对不同环境,使用不同配置文件。

 

第一步:创建filters资源文件(src/main/filters/dev.properties、test.properties、beta.properties),其中路径地址/名称任意设置。

dev.properties

 

mysql.url=jdbc:mysql://xx.xx.xx.xx:3306/xx

 

 

第二步:创建配置文件(src/main/resources/settings.properties),对第一步配置资源进行使用。

settings.properties

 

mysql.url=${mysql.url}

 可使用如下命令将配置文件导入到spring容器中

<context:property-placeholder location="classpath:settings.properties"/>

 

也可在spring配置文件中直接使用(src/main/resources/spring.xml)

spring.xml

 

<bean  class="xx.xx.xx.xx.xx.xx">
    <property name="url" value="${mysql.url}" />
</bean>

 

第三步:在pom中配置profile

    pom.xml 

<profiles>
	<profile>
		<id>dev</id>
		 <build>
			<filters>
				<filter>src/main/filters/dev.properties</filter>
			</filters>
		 </build>
                 <!-- 定义其为默认加载 -->
		 <activation>
			<activeByDefault>true</activeByDefault>
		 </activation>
	</profile>
	<profile>
		<id>test</id>
		 <build>
			<filters>
				<filter>src/main/filters/test.properties</filter>
			</filters>
		 </build>
	</profile>
	<profile>
		<id>beta</id>
		 <build>
			<filters>
				<filter>src/main/filters/beta.properties</filter>
			</filters>
		 </build>
	</profile>

 将其添加到pom的<project>标签内部。

 

第四步(关键一步):maven打包时激活filters过滤。

pom.xml

<build>
         <!-- 定义项目打包后的名称 -->
	<finalName>pojo-name</finalName>
	<resources>
		<resource>
                         <!-- 对该目录下的配置build时启用filter 过滤替换-->
			<directory>src/main/resources</directory>
			<filtering>true</filtering>
		</resource>
	</resources>
</build>

 

 

第五步:执行打包命令

mvn package -P dev

其中 -P 指定编译的profile

 

问题分享:

在使用过程中,配置与以上配置完全相同,但始终无法对${mysql.url}等参数进行替换,最终导致的问题是,我在eclipse-->properties-->java build path-->source 配置中将src/main/resources默认编译到了src/main/webapp/WEB-INF/classes 目录下(未替换文件-错误文件),导致在执行mvn 命令时,由于未进行mvn清理,mvn是直接将src/main/webapp/WEB-INF/classes拷贝到了target/obj-name/WEB-INF/下面,而不是经过build filter重新生成的配置文件!解决方案:删除src/main/webapp/WEB-INF/classes下配置文件,让其在mvn package -P dev 时重新生成!

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics