首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从多个Ant目标调用Javascript函数?

如何从多个Ant目标调用Javascript函数?
EN

Stack Overflow用户
提问于 2018-07-31 00:15:03
回答 1查看 134关注 0票数 0

我有一个javascript函数,我想在Ant构建文件中定义一次,然后在多个目标中调用它,而不必在每个目标中修改它。

下面是我的函数:

代码语言:javascript
复制
divs = project.getProperty("division").split(",");

runMacro = function(macro_name) {

     for (i=0; i < divs.length; i++)
   {

     try {

 if (typeof(divs[i]) != "undefined" && divs[i] != "" && divs[i] !== null) {

  macro = project.createTask(macro_name);

  macro.setDynamicAttribute("division", divs[i]);
  macro.setDynamicAttribute("application-version", "${app-version}");
  macro.perform();

 } else {

  throw "Divison name cannot be null.";

 } 


}
 catch (error) {

  print("Something went wrong: ", error);


 }

}

}

我想从Ant build.xml中的任何目标调用它

代码语言:javascript
复制
<target name="app-status" description="." >
		<script language="javascript">
			<![CDATA[


myScript.runMacro("get-app-status");



 ]]>
		</script>
	</target>

有没有办法在Ant脚本中将JS函数定义为全局函数?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-08-01 03:57:10

谢谢,CAustin。

您是对的,这可以使用Scriptdef来实现。

我还没有尝试过,但是代码应该是这样的:

代码语言:javascript
复制
 <scriptdef name="process-divsion" language="javascript">
      <attribute name="macro-name"/>

      <![CDATA[


        divs = project.getProperty('division').split(','); 


       for (i=0; i < divs.length; i++)
       {


     try {

      print("Processing divison: ", divs[i]);

     if (typeof(divs[i]) != "undefined" && divs[i] != "" && divs[i] !== null) {
        macro = project.createTask(attributes.get("macro-name"));

         macro.setDynamicAttribute( "division", divs[i]);

         macro.perform();
         }

         else {

       throw "Division name cannot be null.";

      }
       }

       catch (error) {

      print("Something went wrong: ", error);


     }

       }


      ]]>
    </scriptdef>

然后,可以在build.xml中的任何位置调用它

代码语言:javascript
复制
<target name="app-status" >
<process-division macro-name="get-app-status"  />
</target>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51598213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档