Gradle Kotlin DSL:如何使用类型安全api配置子项目
梯度6.1.1 我一直在尝试使用Kotlin DSL以类型安全的方式转换我的项目的Gradle文件,但到目前为止失败了。我所有的项目都是Java中的多项目构建。其思想是分解/消除子模块的常见配置(无论是在根模块的“subprojects”块中还是在单独的“kts”文件中,我都不在乎)。 官方文档指出,不可能对“subprojects”使用类型安全并应用(from='shared.gradle.kts')() 它的工作原理如下所示,但相当令人担忧:Gradle Kotlin DSL:如何使用类型安全api配置子项目,gradle,gradle-kotlin-dsl,Gradle,Gradle Kotlin Dsl,梯度6.1.1 我一直在尝试使用Kotlin DSL以类型安全的方式转换我的项目的Gradle文件,但到目前为止失败了。我所有的项目都是Java中的多项目构建。其思想是分解/消除子模块的常见配置(无论是在根模块的“subprojects”块中还是在单独的“kts”文件中,我都不在乎)。 官方文档指出,不可能对“subprojects”使用类型安全并应用(from='shared.gradle.kts')() 它的工作原理如下所示,但相当令人担忧: plugins { idea
plugins {
idea
eclipse
}
subprojects {
apply(plugin = "java")
dependencies {
"implementation"("com.google.guava:guava:28.1-jre")
//...
}
}
有没有办法以类型安全的方式分解所有子模块的模块配置?如果不是。。。gradle计划允许吗?gradle
6.1.1
内容如下:
只有主项目构建脚本和预编译项目脚本插件具有类型安全模型访问器。初始化脚本、设置脚本、脚本插件不支持。这些限制将在未来的Gradle版本中删除
无论“未来版本”可能意味着什么,但内容如下:
跨项目配置是一种机制,通过该机制,您可以从另一个项目的构建脚本配置项目。一个常见的示例是在根项目生成脚本中配置子项目。采用这种方法意味着您将无法对插件提供的模型元素使用类型安全访问器。您将不得不依赖字符串文本和标准的GradleAPI
在未来的版本中。。。我希望它不会永远存在。