如何将gradle 5预编译脚本插件放入包装,使其正常工作

时间:2019-04-25 10:44:22

标签: gradle

我想使用gradle 5.3.1引入的precompiled script plugins功能对我的build.gradle.kts文件进行模块化。

当我将简单的hello-world.gradle.kts文件直接保存在buildSrc/src/main/kotlin中时,效果很好

tasks.register("hello-world") { println("hello world") }

并将其包含在我的主要build.gradle.kts的插件部分中:

plugins {
   `hello-world`
}

我现在可以使用gradle hello-world并查看预期的输出。

但是当我在buildSrc/src/main/kotlin/custom/hello-world-custom.gradle.kts中放置相同的脚本(向脚本中添加package custom时)失败了,尽管文档指出:

  

同样,只要src / main / kotlin / my / java-library-convention.gradle.kts的插件声明为my,它的插件ID为my.java-library-convention。

主要build.gradle.kts

plugins {
   `custom.hello-world-custom`
}

但是,我得到一个错误:

 Script compilation error:

  Line 3:   `custom.hello-world-custom`
        ^ Unresolved reference: `custom.hello-world-custom`

有什么办法解决此问题吗?

更新:为重现这一点,我创建了一个small repo,具有不同的“ hello world”任务。

1 个答案:

答案 0 :(得分:2)

从文档中还不清楚,但是我找到了解决方案:

必须在反引号之外定义包:

plugins {
 `hello-world`
 custom.`hello-world-custom`
}