繁体   English   中英

Groovy ant任务:指定其他Groovy文件

[英]Groovy ant task: Specifiying additional groovy files

在我们的ANT构建文件中,有时我们称为Groovy脚本

<groovy src="${groovy.script.dir}/DoIt.groovy"/>

有没有一种方法可以指定一个或多个其他Groovy文件? 我们的用例是,我们单独定义了一些常量,这些常量应在多个脚本中使用。

我们是否必须将您的脚本编译为.class文件以便按预期使用它们,还是有一种更时髦的方式来实现我们的目标?

<groovy>任务的文档说,当您指定src属性时:

包含文件的目录被添加到类路径中

因此,应该从您声明的脚本访问同一文件夹中的其他常规类文件。

这不行吗?

在过去,使用Groovy 1.8.1遇到了同样的问题。 我在文档中找不到如何在同一个<groovy>任务中使用多个脚本文件(另请参阅ant <script>任务的文档)。 使用多个任务对我来说都不起作用,因为在它们之间重置了上下文。

我还没有升级到Groovy 2.xy,因为我使用的并不多。 下面我说明了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()可以是一个String或一个Script文件,根据当前文档的API文档,它会在其上执行动态评估。 我想,这些就是<groovy>任务的绑定。

我不确定我是否理解您的用例,但是使用此模型,您当然可以先定义常量。 硬编码,作为属性+代码,或在常规脚本文件+评估中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM