当前位置: 首页 > 知识库问答 >
问题:

分级任务组织

秦永望
2023-03-14

我在以可管理的方式组织构建时遇到了问题。在我的gradle构建中有大量的任务,因为对于每个特定的工作元素,gradle都需要一个这种类型的任务。例如:复制一个文件分级需要复制任务类型,压缩一个文件分级需要压缩任务类型,删除几个文件分级需要删除任务类型。Javadoc、Jar、Ear等也需要它们的任务类型。最终,build有大量的任务,要以特定的顺序运行所有这些任务,我必须使用

taskA.mustRunAfter taskB

将这些规则应用于所有任务会使构建变得更加难以管理。有没有一种方法可以在一个任务中编程所有这些工作元素(例如,复制文件、zip文件、创建jar和javadoc等)(就像ant中提供的那样)

共有1个答案

尉迟安民
2023-03-14

您没有使用dependson的原因吗?您将需要指定更多的MustRunAfter语句,以实现dependson可以获得的相同排序。至少,这是我的经验。只有在排序问题显式地不是依赖项时,才使用MustRunAfter

例如,我们使用gradle来安装和卸载测试环境。如果两者都运行,则install.mustrunafter uninstall(以执行刷新),但显然install并不总是依赖于uninstall,所以我们使用mustrunafter

也就是说,可以在一个任务中运行许多元素的一种方法是使用一系列ant目标。

task lotsOfStuffAtOnce {
    ext.paulaProp = 'brillant'
} << {
    ant.copy ...
    ant.zip ...
    ant.jar ...
}
 类似资料:
  • 我正在编写一个自定义的gradle插件,它生成代码并注入一些新的gradle任务。我当前的问题是,在上,或任务失败。 在您说but hey之前,R文件不是生成的:它是生成的。我在文件系统中看到了文件。 当我在mac上禁用并行任务时,我玩得更多了,它的编译也很好。然而,在特拉维斯身上,它还是失败了。

  • 我用facebook SDK4.20.0构建了我的android应用程序。当我构建项目时,它在运行到任务中时抛出了zipException Build.Gradle如下: zipInputStream(Android API27)的代码片段: 并且stacktrace显示异常是由以下原因引起的

  • 我有个任务,大概是: 我尝试了所有的方法,但仍然出现错误:/

  • 嗨,我有多项目分级设置 所有的工作都很好,但有一件事让我抓狂。在生成脚本中: 当我从命令行“gradlew”调用时<-默认任务将被执行 当我从命令行“gradlew tasks”<-task“All task runnable from root project”下调用时,我看到“build” 但当我尝试添加dependsOn('build')、dependsOn(':build')或depend

  • 我有一个自定义gradle任务的问题:我想复制我的android jar库,然后将其重命名为“clean build”,这是我如何定义它的: 问题是,在gradle日志结果中,'clean'是在'build'任务之后完成的,因此库永远不会复制到目标文件夹: 我也尝试过在“depends on:[]”中更改任务的顺序,但这并没有改变任何东西...有人知道我错在哪里吗?提前致谢

  • 我有一个非常基本的多项目分级设置,如下所示: 文件包括这两个子项目。根项目不应用java插件,但两个子项目都应用了。使用时,所有东西都按预期生成。 但是,据我所知,由于我没有在根项目中应用插件,因此它不应该有任务。 的输出显示任务。 但的输出只显示列有和。 所以我的问题是--在这个场景中到底执行了什么?gradle只是找到所有子项目中匹配供应模式的每一个任务吗?是否有关于此任务名称解析的特定规则?