我在 gradle 中有一个非常规的构建脚本,它可以对项目进行循环编译。
更改为标准 gradle 构建需要数周时间,因此现在不会发生。
问题是我想停止在我的脚本中使用 ant 并转而只使用 groovy + gradle。
问题是如何更改像 copy 这样的任务?替换正则表达式?解压?
我假设在标准的 gradle 插件和 java 插件中我拥有大部分我需要的东西,但它们都是任务,现在如果我的主要任务中有一个需要复制操作的方法,我该怎么办?
有没有办法调用任务代码?有没有办法从 groovy 脚本中调用任务本身?
最佳答案
首先,你永远不应该从另一个任务中调用一个任务 - 如果你这样做会发生不好的事情。相反,您应该声明两个任务之间的关系( dependsOn
、 mustRunAfter
、 finalizedBy
)。
在某些情况下(比人们认为的要少),链接任务可能不够灵活;因此,对于某些任务(例如 Copy
),提供了等效的方法(例如 project.copy
)。但是,应谨慎使用这些方法。在许多情况下,任务是更好的选择,因为它们是 Gradle 的基本构建块并提供许多优势(例如自动更新最新检查)。
有时,使用 GradleBuild
也是有意义的。任务,它允许执行一个构建作为另一个构建的一部分。
关于groovy - 我可以从 .gradle 文件中的 groovy 方法调用 gradle 任务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204077/