我需要检索所有属性'加载前使用属性文件中的名称(使用Ant)
我将详细解释整个过程:
读取第一个属性文件(将其命名为a.properties) 所有属性都作为项目属性加载。
#a.properties's contents
myvar1=1
myvar2=someTextHere
必须加载第二个文件(让他们说b.properties)
项目。一些已经设置的属性也可以包含在其中
第二个文件,所以我们要做的就是更新这些变量
在其上找到的值(通过ant-contrib
' var
目标
#b.properties's contents
myvar1=2 #updated value for a property that's is already set on the project
myvar3=1,2,3,4,5,6
所以预期的子集(从ANT项目的属性角度来看) 属性/价值对将是:
myvar1=2
myvar2=someTextHere
myvar3=1,2,3,4,5,6
我们无法更改在项目中加载这些文件的顺序,这是解决问题的最简单方法(因为Ant在设置属性时采用的行为)
任何反馈都将受到高度赞赏。
此致
答案 0 :(得分:0)
我假设您需要在构建源代码之前读取不同文件中的属性
<target name=-init-const-properties description="read all properties required">
<propertyfile file="AbsolutePathToPropertyFile" comment="Write meaningfull
about the properties">
<entry value="${myvar1}" key="VAR1"/>
<entry value="${myvar2}" key="VAR2"/>
</propertyfile>
</target>
注意:您需要添加适当的AbsolutePathToPropertyFile
并在必要时发表评论
在目标-init-const-properties
中,您可以添加要读取的文件数,并将此目标用作要在其中使用这些属性值的相关目标。希望这会回答你的问题
答案 1 :(得分:0)
我建议使用名为“build.properties”的构建默认值的标准文件。如果需要覆盖任何设置,请创建名为“build-local.properties”的可选文件。
我的建议是保持构建逻辑简单。在我的经验中,很少需要使用ant-contrib扩展来使属性像变量一样。
├── build-local.properties
├── build.properties
└── build.xml
运行项目会产生以下输出,其中值为“two”:
$ ant
build:
[echo] Testing one, dos, three
删除可选文件,它将恢复为默认值:
$ rm build-local.properties
$ ant
build:
[echo] Testing one, two, three
秘密是加载属性文件的顺序。如果它们不存在,那么它们就不会创建属性。
<project name="demo" default="build">
<property file="build-local.properties"/>
<property file="build.properties"/>
<target name="build">
<echo message="hello ${myvar1}, ${myvar2}, ${myvar3}"/>
</target>
</project>
myvar1=one
myvar2=two
myvar3=three
myvar2=dos
答案 2 :(得分:0)
最后,我遵循的方法是从命令行指定第二个属性文件(b.properties
):
ant <my_target> -propertyfile b.properties
这对我来说很好......
感谢各位的帮助。