4

ant-contribの最新バージョンはant-contrib-1.0b3.jar

http://ant-contrib.sourceforge.net/tasks/tasks/more_conditions.html

このドキュメントの表示endsWith条件

しかし、私はant 1.8.2を使用しています。そしてant-contrib-1.0b3.jarendsWith条件が見つかりません。

    <if>

        <endswith string="D:\FeiLong Soft\Essential\Development\repository\org\springframework\spring-beans" with="spring-beans" />
        <then>
            <echo>equals</echo>
        </then>
        <else>
            <echo>not equals</echo>
        </else>
    </if>

しかし結果:

BUILD FAILED
E:\Workspaces\feilong\feilong-platform\tools\feilong-tools-ant\build.xml:32: if
doesn't support the nested "endswith" element.

Total time: 1 second
4

2 に答える 2

4

特にantcontrib(バージョン1.0b2または1.0b3)からのソースをチェックするnet/sf/antcontrib/antcontrib.propertiesと、 antcontribマニュアルに記載されていますが、条件../antlib.xml はありません。startsWithendsWith

これらの2つの条件は、antといくつかのantタスクを実行するためのUIを提供するAntelopeプロジェクトに由来します。数年前、AntelopeをAntContribとマージする計画がありました。AntelopeタスクとAntContribおよびAntelopeプロジェクトサイトのマージを参照してください。

Antelopeプロジェクトは、Antで配布される標準タスクにはない機能を提供する一連の追加タスクも提供します。AntelopeタスクをAntContribプロジェクトとマージする作業が進行中です。
[...]
Ant-Contribプロジェクトは、Apache Antのタスク(およびある時点ではタイプやその他のツール)のコレクションです。アンテロープタスクの一部は現在、そのプロジェクトの一部です。

しかし、どういうわけか、それらのマージ計画は停滞し、適切に終了しませんでした。また、Antcontribは死んでいるようです-2006-11-02からの最新リリース1.0b3

とにかく、 antcontribでantmatches条件を使用することができます:

<project>
 <!-- Import AntContrib -->
 <taskdef resource="net/sf/antcontrib/antlib.xml"/>
 <property name="foo" value="D:\FeiLong Soft\Essential\Development\repository\org\springframework\spring-beans"/>

 <if>
 <matches string="${foo}" pattern="^.+spring-beans$"/>
  <then>
   <echo>equals</echo>
  </then>
  <else>
   <echo>not equals</echo>
  </else>
 </if>
</project>

またはアンテロープアリタスク

于 2015-04-15T07:55:09.793 に答える
0

「startwith」を使用しても同じ問題が発生しましたが、解決策が見つかりませんでした。「含む」が機能する原因はわかりませんが、「startwith」と「endwith」はわかりません。

<if>
    <contains string="a sample string" substring="sample" />
    <then>
        <echo>match</echo>
    </then>
    <else>
        <echo>not match</echo>
    </else>
</if>
于 2015-04-14T20:44:34.687 に答える