9

埋め込みの JavaScript を含む ant タスクがあります。JavaScriptで実行するロジックに基づいて、ターゲットを失敗または成功させたいと思います。

<target name="analyze">
    <script language="javascript">
    <![CDATA[
            importClass(java.io.File);
            importClass(java.io.FileReader)
            importClass(java.io.BufferedReader)

            String.prototype.startsWith = function(str) {
                return (this.indexOf(str) === 0);
            }

            String.prototype.endsWith = function(str) {
                var lastIndex = this.lastIndexOf(str);
                return (lastIndex != -1) && (lastIndex + str.length == this.length);
            }

            //setup the source directory
            srcDir = project.getProperty("MY_HOME") + "/foo/src";

            if(srcDir.startsWith("/foo") { 
            //TARGET SHOULD PASS
            } else { 
            //TARGET SHOULD FAIL
            }

    ]]>
    </script>
</target>
4

3 に答える 3

9

Exit API を使用して Ant を終了させることもできますが、これはビルド例外をスローし、スタック トレースが乱雑になります。最もクリーンな方法は、javascript でプロパティを設定し、failタスクを使用してテストすることです。

Javascript:

project.setProperty( "javascript.fail.message", "There was a problem" );

Ant、スクリプト タスクの直後:

<fail if="javascript.fail.message" message="${javascript.fail.message}" />
于 2011-07-01T15:36:02.417 に答える
3

別のターゲット:

<target name="failme"><fail/></target>

脚本:

`project.executeTarget("failme");`

未検証。ドキュメンテーション

于 2011-07-01T10:15:21.537 に答える