2011-06-30 17 views
7

Gömülü javascript içeren bir ant görevim var. Hedefi olsun isterim başarısız ya da ben javascript çalıştırmak bazı mantık temelinde başarılı:ant javascript failonerror

<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> 

cevap

7

Çıkış API'sı aracılığıyla Ant çıkışını yapabilirsiniz, ancak bu karmaşık bir yığın izine neden olacak bir yapı istisnası atar.

Javascript:

<fail if="javascript.fail.message" message="${javascript.fail.message}" /> 
+0

Martin, tam istediğim şekilde çalışıyor. Bütün sorularıma zekice cevap verdin, huşu içinde duruyorum. –

+0

Yapabilirsem bu cevabı 5 defa oylarım. –

+0

@Amir - çok kibarsınız. Yardımcı olmaktan memnun oldum, ama daha önce bir cevap yazmayı başaramadığım için üzgünüm - işler yoldan çıktı. –

2

başka hedef:

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

Senaryo:

`project.executeTarget("failme");` 

Test edilmedi.

+0

Bu akıllı görünüyor:

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

Ant, hemen komut görevi sonrasında en temiz yöntem sonra fail task kullanarak test javascript bir özelliği ayarlamak olacaktır. Test ettiğimde şöyle bir şey elde ettim: WrappedException: mesaj yok. Bununla ne yapacağına dair bir fikrin var mı? –

+0

Bu işe yarıyor gibi görünüyor ama bir ScriptException atar. Komut dosyasının istisna olmadan yürütmesini ve hedefin başarısız olmasını isterim. Komutumdan bir kargaburuyu karıncaya doğru yaymanın bir yolu var mı? –

+0

Bu teknik olarak çalışır, +1. –