gpt4 book ai didi

gradle - Gradle从另一个项目引用任务类型

转载 作者:行者123 更新时间:2023-12-03 04:33:06 24 4
gpt4 key购买 nike

这是文件结构:

/some/project/a.gradle
/some/project/common/subproject/b.gradle

在文件a.gradle中,我有:
apply plugin: "java"
class ClassThatExtendsDefaultTask extends DefaultTask {
...
}

在文件b.gradle中:
apply from: "$rootDir/a.gradle"
task someTask(type: ClassThatExtendsDefaultTask) {
...
}
compileTestJava.dependsOn someTask

但是,当我运行gralew测试时,我得到了:
Task with path 'ClassThatExtendsDefaultTask' not found in project ':common:subproject'.

所以我的问题是如何在另一个文件中引用Java任务?我复制粘贴ClassThatExtendsDefaultTask从a.gradle到b.gradle,它确实有效。

最佳答案

看来您应该考虑将类移至buildSrc。也就是说,将类提取到文件ClassThatExtendsDefaultTask.groovy并将其放置在文件夹“[rootDir] / buildSrc / src / main / groovy”(其中[rootDir]是项目的根目录)中。

您还应该考虑将其放在该目录下的包中,但是如果是这样,则需要导入或完全限定类名。

有几个好处。它已编译并在所有子项目中可用。您可以编写测试代码(buildSrc本身是一个常规项目)。

另请:gradle buildSrc doc

关于gradle - Gradle从另一个项目引用任务类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36419151/

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