我想检查属性值是否具有应该从ant
中的另一个文件读取的值任何身体都可以,不需要额外的罐子。
<property name="a" value="${input.password}" />
想检查input.password是否从xyz.properties文件获取了值
非常感谢 悬臂P.S:实际上我必须检查此行密码= mypassword是否存在于.properties文件中,是否存在于ant脚本中。另一种方式是受欢迎的!
编辑:我正在使用其中一个引用的解决方案,但没有成功:
<property file="..\..\xyz\application.properties" prefix="input" />
<property name="foo" value="${input.password}"/>
<fail message="Property "foo" has no value">
<condition>
<not>
<equals arg1="${foo}" arg2=""/>
</not>
</condition>
</fail>
始终收到此消息:“Property”foo“没有值”,无论该行是否存在:password = de in application properties。
答案 0 :(得分:1)
您可以尝试使用<fail message="db.schema is not defined!" unless="db.schema"/>
块,例如,如果未定义db.schema,则会失败。您可能会发现一些this并且很有用,这是您正在寻找的吗?
同时检查this。哦,好吧,我明白你的意思,请试试这个(我正在使用Ant 1.8.2): 这是build.xml:
<project name="Bla" default="build" basedir=".">
<target name="build">
<property file="bla.properties"/>
<fail>
<condition>
<not>
<equals arg1="${foo}" arg2="bodo"/>
</not>
</condition>
</fail>
</target>
</project>
文件bla.properties包含foo=boo
,如果我将bodo
更改为boo
,它目前失败,则成功。
答案 1 :(得分:1)
<project name="demo" default="dosomething">
<loadproperties srcFile="check.properties"/>
<target name="check">
<input message="Enter value" addproperty="input"/>
<condition property="input.matches">
<equals arg1="${input}" arg2="${valuefromfile}"/>
</condition>
</target>
<target name="dosomething" depends="check" if="input.matches">
<echo message="hello world"/>
</target>
</project>