摇篮6.1.1
我一直在尝试使用 Kotlin DSL 转换我的项目的 Gradle 文件类型安全方式但到目前为止失败了。我的所有项目都是用 Java 进行的多项目构建。这个想法是分解/删除子模块的常见配置(无论是在根模块的“子项目”块中还是在我不关心的单独“kts”文件中)。
官方文档指出,“子项目”和 apply(from = 'shared.gradle.kts') 不可能具有类型安全(https://docs.gradle.org/current/userguide/kotlin_dsl.html https://docs.gradle.org/current/userguide/kotlin_dsl.html).
它的工作原理如下,但相当烦人:
plugins {
idea
eclipse
}
subprojects {
apply(plugin = "java")
dependencies {
"implementation"("com.google.guava:guava:28.1-jre")
//...
}
}
有没有办法以类型安全的方式分解所有子模块的模块配置?如果没有...... gradle 是否计划允许它?
Gradle 6.1.1
类型安全模型访问器 https://docs.gradle.org/current/userguide/kotlin_dsl.html#type-safe-accessors reads:
只有主项目构建脚本和预编译项目脚本插件具有类型安全的模型访问器。初始化脚本、设置脚本、脚本插件则不然。这些限制将在未来的 Gradle 版本中删除.
无论“未来版本”可能意味着什么……同时交叉配置项目 https://docs.gradle.org/current/userguide/kotlin_dsl.html#sec:kotlin_cross_project_configuration reads:
跨项目配置是一种可以从另一个项目的构建脚本配置项目的机制。一个常见的示例是在根项目构建脚本中配置子项目时。采用这种方法意味着您将无法对插件贡献的模型元素使用类型安全的访问器。相反,您必须依赖字符串文字和标准 Gradle API。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)