在我们的ANT构建文件中,我们有时会调用groovy脚本
<groovy src="${groovy.script.dir}/DoIt.groovy"/>
有没有办法指定一个或多个其他Groovy文件?我们的用例是我们在一个单独定义的一些常量中应该在几个脚本中使用。
我们是否必须将脚本编译为.class文件才能按预期使用它们,或者是否有更加实现目标的方式?
答案 0 :(得分:1)
答案 1 :(得分:0)
我使用Groovy 1.8.1过去曾遇到过同样的问题。我在文档中找不到如何在同一<groovy>
任务中使用多个脚本文件(另请参阅ant <script>
任务的文档)。使用多个任务对我来说都不起作用,因为它们之间重置了上下文。
我没有升级到Groovy 2.x.y,因为我没有那么多使用它。下面我将介绍1.8.1的可能解决方法;也许它仍然有效。
<property name="home" location="/Users/coyote/mytest/ant/src"/>
<property name="gscript1" location="${home}/my/own/pack/foo.groovy"/>
<property name="gscript2" location="${home}/my/own/pack/bar.groovy"/>
<groovy>
evaluate( new File(properties.'gscript1') );
evaluate( new File(properties.'gscript2') );
</groovy>
evaluate()
接受字符串或脚本文件,根据API文档使用当前绑定执行动态评估。那些是<groovy>
任务的绑定,我认为。
我不确定我理解你的用例,但是使用这个模型你当然可以先定义常量;硬编码,作为属性+代码,或者在groovy-script-file + evaluate中。