0

一致タスクを使用してタスクを処理/スキップしようとしています。しかし、「偽陽性」が発生しています.falseを返す必要があると思われる場合、一致はtrueを返します。
次のコードが使用されています。

<property name="moduleList" value="AP|MR"/>
<echo message="ModuleList is ${moduleList}" />
...some for loop here...
<echo message="Found ${zipFilename}" />
<if>
    <matches pattern="${moduleList}" string="${zipFilename}" />
    <then>
        <echo message="Creating ${zipFilename}" />
    </then>
    <else>
        <echo message="Skipping ${zipFilename}" />
    </else>
</if>

zipfileName は、フォルダーをループしてファイルのベース名を取得することによって決定されます。遭遇する zipfileNames は、AP、MR、および VAP
です。このコードの結果は次のとおりです。

[echo] ModuleList is AP|MR
[echo] Found AP
[echo] Creating AP
[echo] Found MR
[echo] Creating MR
[echo] Found VAP
[echo] Creating VAP
[echo] Found eFormsPolicy
[echo] Skipping eFormsPolicy

したがって、私によると、VAP は偽陽性です。
または、私の試合に何か問題がありますか?

AFAIK ant.regexp.regexpimpl が設定されていないため、ant は Jdk14Regexp 実装を使用しています

4

1 に答える 1

1

VAPで終わるため、誤検知が発生している可能性がありますAPか? マッチパターンを に変更したらどうなる^(${moduleList})$でしょうか? 実際に moduleList を代入すると になり^(AP|MR)$、一致しませんVAP

于 2013-05-27T15:12:51.000 に答える