我想使用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”任务。
答案 0 :(得分:2)
从文档中还不清楚,但是我找到了解决方案:
必须在反引号之外定义包:
plugins {
`hello-world`
custom.`hello-world-custom`
}