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

Gradle在其执行阶段,动态地添加和执行任务

呼延永新
2023-03-14

我有在Gradle的执行阶段创建和执行任务的需求。

目前,在构建任务期间,我确定并创建了多个添加到taskContainer的任务,使用:

任务[“$taskname”].execute()

在第一次执行时,我得到以下错误:

>任务工件状态缓存(.../.gradle/1.5/taskartifacts)尚未被锁定。

我做错了什么,有没有更好的方法在执行过程中动态添加任务?

共有1个答案

屠华辉
2023-03-14

必须在配置阶段声明所有任务和任务依赖项。不能在执行阶段添加它们。此外,不支持调用task.execute()(这将导致问题)。一个任务可以依赖于其他任务,但不能调用它们。

 类似资料:
  • 我有一个Gradle任务,简单地将文件从一个文件夹复制到另一个文件夹。 当在配置阶段调用copy'from''into'方法时,它可以工作,但当在执行阶段调用它们时,它就不工作了。 这样做是有效的 gradle copyServerConfig 如果我把它放在doFirst{}块中,也会发生同样的事情。 我不明白的另一件事是: gradle task1 但如果我改成这样: gradle task1

  • OpenResty 处理一个请求,它的处理流程请参考下图(从 Request start 开始): 我们在这里做个测试,示例代码如下: location /mixed { set_by_lua_block $a { ngx.log(ngx.ERR, "set_by_lua*") } rewrite_by_lua_block { ngx.log

  • 我试图通过这个Gradle插件https://github.com/theboegl/gradle-launch4j使用http://launch4j.sourceforge.net/。 当我执行时,我会得到以下输出。 这是我的年级版本信息。 这是我的构建脚本。

  • https://docs.gradle.org/current/userguide/custom_tasks.html 如何使此任务在执行阶段运行?正在传递一个空闭包 唯一的解决办法? 但是hello任务似乎是在构建的配置阶段调用的。

  • 这就是我所拥有的理想构建脚本: 我确实想手动执行任务“unzip_natives_os”。但它似乎只在配置阶段起作用。当我用这个设置进行测试运行时,它会给我一个错误:“java.lang.UnsatifiedLinkError”,但是如果我在dependencies块中将配置从“NativeSos”更改为“RuntimeOnly”,它就能正常工作。我是否必须显式地创建这个“ApplicationD

  • 查看当前项目支持哪些Gradle任务 使用.\/gradlew task来查看当前项目支持哪些Gradle任务. FirstApp$ ./gradlew task :tasks ------------------------------------------------------------ All tasks runnable from root project(所有从项目根目录