动态替换属性文件值与另一个值 - Spring maven

时间:2013-10-21 14:11:45

标签: java spring maven

我有2个外部属性security.properties和env.properties,我在security.properties中有一个键作为key1,我想根据env.properties key1替换这个key1值

例如:

security.properties
hibernate.connection.url=jdbc:oracle:thin:@localhost:4521/NGI

env.properties
jdbc.url=jdbc:oracle:thin:@localhost:4521/NGI (it defers based on the environment)

我想根据加载的环境将hibernate.connection.url替换为jdbc.url。

我尝试了以下选项,但是我收到了构建失败错误

<configuration>
           <file>target/${project.artifactId}/security.properties</file>
           <replacements>
               <replacement>
                   <token>${hibernate.connection.url}</token>
                   <value>${jdbc.url}</value>
               </replacement>         
           </replacements>
       </configuration>

请分享您的建议

2 个答案:

答案 0 :(得分:1)

我相信,你在pom中错过的是加载env属性。您需要使用maven properties plugin加载该文件。

但是,每个人都试图告诉您的是,将env.properties中的值保存在pom.xml中的不同配置文件中,并根据您的目标环境激活正确的配置文件。

答案 1 :(得分:0)

如何将所有这些URL保存为pom.xml中的属性值而不是一堆“.properties”文件?可以使用配置文件轻松更改和覆盖它们的值,并且可以在Maven构建的过滤资源复制阶段将它们替换为“.properties”文件。