4

我在 gradle 中有一个非常规的构建脚本,可以循环编译项目。更改为标准 gradle 构建需要数周时间,所以现在不会发生这种情况。

问题是我想停止在我的脚本中使用 ant 并且只使用 groovy + gradle。问题是如何更改复制之类的任务?替换正则表达式?解压?我假设在标准 gradle 插件和 java 插件中我有大部分我需要的东西,但它们都是任务,现在如果我的主要任务中有一个需要复制操作的方法,我该怎么做?有没有办法调用任务代码?有没有办法从 groovy 脚本中调用任务本身?

4

1 回答 1

8

首先,你永远不应该从另一个任务中调用一个任务——如果你这样做会发生坏事。相反,您应该声明两个任务之间的关系 ( dependsOn, mustRunAfter, finalizedBy)。

在某些情况下(比人们相信的要少),链接任务可能不够灵活;因此,对于某些任务(例如Copy),提供了等效的方法(例如project.copy)。但是,应谨慎使用这些方法。在许多情况下,任务是更好的选择,因为它们是 Gradle 的基本构建块并提供许多优势(例如自动更新检查)。

有时使用任务也很有意义GradleBuild,它允许将一个构建作为另一个构建的一部分执行。

于 2013-08-13T08:49:07.443 回答