【问题标题】:maven-android-plugin passing build propertiesmaven-android-plugin 传递构建属性
【发布时间】:2011-09-08 17:47:27
【问题描述】:
我在资产文件夹中有一个属性文件,我想在项目构建时覆盖此属性文件中的值。
像 mvn clean install -Durl=https://xyx.xom?
EX:资产/my_prop.properties
# my_server_url=http://www.test.com/
change to
my_server_url=${url}
我想在构建时替换 my_server_url 值我做了什么:
mvn clean install -Durl=http://xys.com
但它没有替换,我如何在构建时替换 my_server_url
【问题讨论】:
标签:
android
maven
maven-plugin
android-maven-plugin
【解决方案1】:
在您的 pom 中,在 <build> 节点内,您需要像这样启用过滤:
<build>
<resources>
<resource>
<directory>assets</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>assets</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</resource>
</resources>
...
</build>
完成后,您可以通过运行进行测试:
mvn resources:resource -Durl=http://www.test.com/
请注意,排除部分的存在是因为您不希望 Maven 过滤您可能在资产目录中拥有的任何二进制文件。如果您没有该部分,则通常会通过尝试过滤任何二进制文件来破坏它们。
通过这种配置方式,过滤后的属性文件将进入您可能不想要的目标/类。您可以通过添加 <targetPath> 节点来更改它。有关配置资源的更多说明,请参阅this link。