0

次のように、プロパティ変数の値を文字列と比較しようとしています

<if>
    <equals "${mat.projectName}"="seal">
<then>

そうすると、次のメッセージが表示されます。

要素タイプ「equals」の後には、属性指定「">」または「/>」が続く必要があります

これを行うためにEclipseフレームワークを使用しています。

4

2 に答える 2

2

最初にマニュアルを読んでください:

http://ant.apache.org/manual/Tasks/conditions.html

明らかに、私たちが知っているマニュアルからequals

arg1 テストする最初の値 arg2 テストする 2 番目の値

だからそうあるべきだ

<if>
    <equals arg1="${mat.projectName}" arg2="seal" />
<then>
    ...

最初に XML に関するガイドを読んでから、Ant のマニュアルを読むことをお勧めします。


アップデート:

<if>task は Ant によって提供されません。Ant-Contrib によって提供されます。だからあなたが必要<taskdef>です。

たとえば、プロジェクトの lib ディレクトリ (${basedir}/lib) に ant-contrib.jar を置いているので、次のように記述できます。

<taskdef resource="net/sf/antcontrib/antcontrib.properties">
    <classpath>
        <pathelement location="lib/ant-contrib.jar"/>
    </classpath>
</taskdef>

詳細については、taskdefのマニュアル ページと Ant-contrib の Web ページを確認してください。

http://ant.apache.org/manual/Tasks/taskdef.html

http://ant-contrib.sourceforge.net/

于 2013-03-04T05:26:24.127 に答える
0

まさにあなたが言っていることはエラーメッセージです...

要素タイプ「equals」の後には、属性指定、">"または"/>"のいずれかを続ける必要があります

あなたはこれを求めている:

<if>
    <equals arg1="${mat.projectName}" arg2="seal"/>
    <then>
        <yadda, yadda, yadda/>
    </then>
</if>

これはXMLであるため、値を持つパラメーターが必要です。このページのequals条件を見てください。2つのパラメータを取ります。

の形式に注意してください<if>。条件は。で終了します/>。は<then>、のサブエンティティで<if>あり、if句は句のサブエンティティです<then>。基本的に2回インデントすることに注意してください。

等しくない条件を実行している場合は、次のようになります。

<if>
    <not>
        <equals arg1="${mat.projectName}" arg2="seal"/>
    </not>
    <then>
        <yadda, yadda, yadda/>
    </then>
</if>
于 2013-03-04T22:58:17.677 に答える