0

我想检查一个属性值是否有一个应该从 ant 中的另一个文件中读取的值

任何人都可以在没有额外的罐子的情况下取悦任何人。

<property name="a" value="${input.password}" />

想检查 input.password 是否从 xyz.properties 文件中获取了值

非常感谢吉布

PS:实际上我必须使用 ant 脚本检查 .properties 文件中是否存在这一行 password=mypassword 。欢迎另一种方式!

编辑:我从引用的解决方案之一做,但没有成功:

<property file="..\..\xyz\application.properties" prefix="input" /> 

<property name="foo" value="${input.password}"/>
 <fail message="Property &quot;foo&quot; has no value">
     <condition>
          <not>
             <equals arg1="${foo}" arg2=""/>
          </not>
     </condition>
</fail>

始终收到此消息:“属性“foo”没有值”,无论此行是否存在:应用程序属性中的密码=de。

4

2 回答 2

1

<fail message="db.schema is not defined!" unless="db.schema"/>例如,如果未定义 db.schema,您可以尝试使用该 块将失败。您可能会发现其中一些有用的东西,是您要找的吗?

也检查一下。哦,好的,我现在明白你的意思了,请试试这个(我使用的是 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,它当前失败,如果我更改bodoboo,则成功。

于 2012-09-06T11:55:27.143 回答
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>
于 2012-09-06T21:53:54.560 回答