Maven根据配置文件更改文件中的值
问题描述:
我的应用程序中有一个名为ApplicationResources.properties的属性文件,其属性根据环境而变化。让我们说的属性是:Maven根据配置文件更改文件中的值
resources.location=/home/username/resources
和发展时,当应用程序投入生产过程中执行的应用程序这个值是不同的。
我知道我可以在Maven中使用不同的配置文件在不同的环境中执行不同的构建任务。我想要做的是以某种方式根据所使用的Maven配置文件替换属性文件中的resources.location的值。这甚至有可能吗?
答
我想要做的是以某种方式根据所使用的Maven配置文件替换属性文件中resources.location的值。这甚至有可能吗?
是的。激活资源过滤并定义要在每个配置文件中替换的值。
在你ApplicationResources.properties
,声明令牌替换这样的:
resources.location=${your.location}
在你的POM,加<filtering>
标签为适当<resource>
并将其设置为true这样的:
<project>
...
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
...
</resources>
...
</build>
...
</project>
然后,在每个配置文件内的<properties>
元素内添加一个<your.location>
元素:
<project>
...
<profiles>
<profile>
<id>my-profile</id>
...
<properties>
<your.location>/home/username/resources</your.location>
</properties>
...
</profile>
...
</profiles>
</project>
@Pascal Thivent谢谢。这是一个很好的解释 – 2010-02-25 17:06:53
+1我第二个:D – ant 2010-02-25 23:10:05