我在gradle中有一个非常规的构建脚本,可以对项目进行循环编译。 这需要数周才能改成标准的gradle构建,所以现在不会发生。
问题是我想在我的脚本中停止使用ant并仅移动使用groovy + gradle。 问题是如何改变像复制这样的任务? replaceregexp?解压缩? 我假设在标准gradle插件和java插件中我拥有我需要的大部分内容,但它们都是任务,现在如果我在我的主要任务中有一个需要复制操作的方法,我该怎么办? 有没有办法调用任务代码?有没有办法从一个groovy脚本调用任务本身?
答案 0 :(得分:7)
首先,你应该从不从另一个任务中调用任务 - 如果你这样做会发生坏事。相反,您应该声明两个任务(dependsOn
,mustRunAfter
,finalizedBy
)之间的关系。
在某些情况下(比人们更倾向于相信),链接任务可能不够灵活;因此,对于某些任务(例如Copy
),提供了等效方法(例如project.copy
)。但是,应谨慎使用这些方法。在许多情况下,任务是更好的选择,因为它们是Gradle的基本构建块并提供许多优点(例如,自动更新检查)。
有时使用GradleBuild
任务也是有意义的,该任务允许将一个版本作为另一个版本的一部分执行。