gpt4 book ai didi

java - 如何在不同的gradle任务之间共享参数

转载 作者:行者123 更新时间:2023-12-01 09:34:07 36 4
gpt4 key购买 nike

假设我有两个 gradle 任务:foobeforeFoo

不足为奇 - beforeFoo 操作必须在 foo 之前完成,我有这个:

task foo << {
dependsOn 'beforeFoo'
}

然后我开始觉得我的 beforeFoo 应该获取一些信息它对 foo 可见,但对 beforeFoo 不可见,我需要以某种方式传递它。在单独的 .gradle 文件中定义的任务,这些文件通过根 build.gradle 通过 apply from 表达式链接在一起。

我已经尝试过:

1

foobeforeFoo 定义在不同的 .gradle 文件中,并且它们都不是 root,因此不可能在任务之间重用 project.ext.myInformation

2

使“beforeFoo”成为 DefaultTask 的扩展类并创建类似的内容

task `beforeFoo` (type: BeforeFooClass){
myInfo='info'
}

没办法,如果BeforeFooClass不是在当前.gradle文件中定义的,那么它是不可见的

不敢相信我无法轻松指定 a.dependsOn b 表达式的争论。如果得到帮助,我会很高兴。

最佳答案

我可能不明白这个问题,但考虑到build.gradle:

apply from: 'before.foo.gradle'
apply from: 'foo.gradle'

before.foo.gradle:

task beforeFoo() << {
println "executing beforeFoo"
println "value is: " + project.ext.value
}

foo.gradle(“配置”阶段和“执行”阶段有单独的代码):

task foo(dependsOn: "beforeFoo") {
println "configuring foo"
project.ext.value = "is set by foo"
}

foo << {
println "executing foo"
}

观察这个结果:

bash$ gradle foo
configuring foo
:beforeFoo
executing beforeFoo
value is: is set by foo
:foo
executing foo

即:

  • foo 在配置阶段设置值
  • beforeFoo 报告执行阶段的值
  • foo 在执行阶段打印文本

关于java - 如何在不同的gradle任务之间共享参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39151583/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com