我想通过使用gradle 5.3.1引入的build.gradle.kts
功能模块化我的precompiled script plugins文件。
当我在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.java-library-convention的插件ID,只要它具有my的包声明。
主要build.gradle.kts
:
plugins {
`custom.hello-world-custom`
}
但相反,我得到一个错误:
Script compilation error:
Line 3: `custom.hello-world-custom`
^ Unresolved reference: `custom.hello-world-custom`
任何想法如何解决这一问题?
更新:为了重现这一点,我创建了一个具有不同“hello world”任务的small repo。
从文档中不太清楚,但我找到了解决方案:
包必须在反引号之外定义:
plugins {
`hello-world`
custom.`hello-world-custom`
}