【问题标题】:Groovy scripts in Ant: Use script task or groovy task?Ant 中的 Groovy 脚本:使用脚本任务还是 groovy 任务?
【发布时间】:2013-05-22 19:19:56
【问题描述】:

如果你想在 Ant 中运行 Groovy 脚本,你可以像这样使用script task:..

<script language="groovy">
//foo
</script>

..或groovy task 这样的:

<groovy>
//foo
</groovy>

这两种方式都需要下载 Groovy 库。我发现了一个看起来很有前途的 Ant 配置,它会在这个答案中自动执行此操作:Execute my groovy script with ant or maven

现在我的问题

这两个 Ant 任务中的哪一个用于运行 Groovy 脚本? scriptgroovy?

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

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

当然,当“groovy”任务可用时,为什么还要使用“脚本”任务呢?你不会的。

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

【问题讨论】:

    标签: ant groovy


    【解决方案1】:

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

    你更喜欢哪个?好的,通常而不是回声。 ...您可以使用 print 或 println,
    这只是为了演示对 ant api 的访问。

    【讨论】:

    • 但是您不能也使用脚本任务从文件运行脚本并在 src 属性中定义文件吗?这里是这样写的:ant.apache.org/manual/Tasks/script.htmlsrc The location of the script as a file, if not inline
    • 当然,你是对的,忘记了,因为我从不使用脚本任务:) 删除了我回答的那部分
    • 谢谢你的例子,我玩了一下,决定使用 groovy 任务!这样访问属性确实容易得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    相关资源
    最近更新 更多