0

私はあなたが助けてくれるかどうか疑問に思っていました。私はantスクリプトを初めて使用します。

2 つのリストを比較できるようにしたい。File1.txt には多くのパラメーターのリストが含まれ、file2.txt にはそれらのパラメーターのセクションのみが含まれます。

File1.txt

dbipAddress=192.168.175.130
QAGENT_QCF=AGENT_QCF
QADJUST_INVENTORY_Q=ADJUST_INVENTORY_Q
QCREATE_ORDER_Q=CREATE_ORDER_Q
QLOAD_INVENTORY_Q=LOAD_INVENTORY_Q

File2.txt

AGENT_QCF
ADJUST_INVENTORY_Q
CREATE_ORDER_Q

file1.txt のすべての Q が file2.txt に含まれていることを知りたいです。「=」の後に、そうでない場合、ant スクリプトは停止し、そうでない場合は Echo メッセージが表示され、スクリプトは次へ移動します。

上記の例では、次の Q が含まれていないため、スクリプトは停止します。QLOAD_INVENTORY_Q=LOAD_INVENTORY_Q.

4

1 に答える 1

1

ANTはプログラミング言語ではないので、組み込む必要があると思います。

次の例ではGroovyを使用しています。

<project name="demo" default="check">

    <target name="bootstrap">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get dest="${user.home}/.ant/lib/groovy.jar" src="http://search.maven.org/remotecontent?filepath=org/codehaus/groovy/groovy-all/2.1.3/groovy-all-2.1.3.jar"/>
    </target>

    <target name="check">
        <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/>
        <groovy>
            def props = new Properties()
            new File("File1.txt").withInputStream { stream -> props.load(stream) }
            def requiredValues = new File("File2.txt").text.split()

            requiredValues.each { check ->
                if (! props.find{it.value == check}) {
                    ant.fail "Cannot find ${check} in File1.txt"
                }
            }
        </groovy>
    </target>

</project>
于 2013-05-24T20:40:33.633 に答える