假设我在buildSrc
下有一个Kotlin脚本:
// buildSrc/src/main/kotlin/greet.gradle.kts
fun Project.greet(greeting: String) {
println("$greeting from ${this.name}")
}
字符串
我希望在另一个脚本中启用函数greet
:
apply(from = "greet.gradle.kts")
apply(plugin = "greet")
greet("me")
型
但是没有apply works
,我仍然得到以下错误:
Unresolved reference: greet
型
怎么做才合适呢?
1条答案
按热度按时间oewdyzsn1#
要在GradleKotlin脚本(kts)DSL中的其他脚本中使用函数,您需要在buildSrc/src/main/Kotlin目录中的单独Kotlin文件中定义函数。此目录被Gradle视为包含的构建,这意味着它可以包含自己的依赖项,并可用于跨多个项目共享代码。
你可以这样做:
在buildSrc/src/main/Kotlin目录中创建一个新的Kotlin文件。我们将其命名为Greeting. kt。
字符串
在您的build.gradle.kts文件中,您现在可以导入并使用greet函数。
型
这会将我从rootProjectName打印到控制台。
请注意,buildSrc目录必须与您的build.gradle.kts文件处于同一级别。如果不是,则需要移动它。
此外,请记住在将新文件添加到buildSrc后刷新Gradle项目。在大多数IDE中,可以通过单击Gradle工具窗口中的“刷新所有Gradle项目”按钮来完成此操作。