Ant 中的 Groovy 脚本:使用脚本任务还是 groovy 任务?

UnP*_*ned 4 ant groovy

如果您想在 Ant 中运行 Groovy 脚本,您可以使用这样的脚本任务:..

<script language="groovy">
//foo
</script>
Run Code Online (Sandbox Code Playgroud)

..或者像这样的常规任务

<groovy>
//foo
</groovy>
Run Code Online (Sandbox Code Playgroud)

这两种方式都需要下载 Groovy 库。我在这个答案中找到了一个很有前途的 Ant 配置,它会自动执行此操作:使用 ant 或 maven 执行我的 groovy 脚本

现在我的问题

两个 Ant 任务中的哪一个用于运行 Groovy 脚本?script或者groovy

另外,如果 Ant 中包含支持 groovy 的脚本任务,那么“附加”groovy 任务的目的是什么?

另外我想引用我在这里找到的一篇博客文章:http : //jbetancourt.blogspot.co.at/2012/03/run-groovy-from-ants-script-task.html

当然,当 'groovy' 任务可用时,为什么要使用 'script' 任务?你不会。

有人同意这篇文章的作者吗?如果是这样 - 你能解释一下它背后的想法吗?

Reb*_*bse 5

+1 Josef 关于 groovy 任务的声明(顺便说一句。他的博客http://josefbetancourt.wordpress.com/http://octodecillion.com/值得一读)
将 groovy 用于多种目的,在 ant 中我专门使用groovy 任务,因为他的灵活语法提供了对 ant api 的简单访问,请考虑以下示例:

<project>
  <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/>

  <property name="foo" value="bar"/>

  <script language="groovy">
   project.setProperty 'foo', 'baz'
   echo = project.createTask 'echo'
   echo.setMessage 'Howdie :-)'
   echo.execute()
  </script>

  <echo>1. $${foo} => ${foo}</echo>

  <groovy>
    properties.'foo' = 'baaz'
    ant.echo 'Howdie :-)'
  </groovy>

  <echo>2. $${foo} => ${foo}</echo>

</project>
Run Code Online (Sandbox Code Playgroud)

你喜欢哪个 ?好的,通常代替回声。...你会使用print或println,
它只是为了演示对ant api的访问。