领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我很高兴地宣布 Dependency Management Plugin 的 1.0.0.RC1 版本已发布。该版本可在 Gradle 插件门户、Maven Central 和 Bintray 上找到。
该插件已用 Java 重写,并且其 API 已正式化。API 和插件内部实现之间引入了清晰的分隔。这需要一些不兼容的更改,但如果您使用 Groovy DSL,则不太可能受到影响。
转换为 Java 和正式化 API 也带来了一些增强:
### 对 Gradle 3 的官方支持
之前,该插件是用 Groovy 编写的,并试图支持 Gradle 1、2 和 3。这被证明是过于雄心勃勃的。两个主要问题是三个不同 Groovy 运行时(1.8、2.3 和 2.4)之间的二进制不兼容性以及 Gradle 三个版本之间的重大更改。为了解决这些问题,Gradle 团队的建议是用 Java 重写插件,并放弃对 Gradle 1.x 的支持。此版本正是这样做的,插件的主要代码现在是 100% Java,Gradle 2.9 是现在最低支持的版本。因此,Gradle 3.x 现在得到了正式支持,并且将来更容易支持新版本的 Gradle。一个受欢迎的附带好处是插件的 jar 文件大小减少了 13%。
以前,该插件的 API 受其用 Groovy 编写的事实严重影响,并且其 API 和 DSL 相当以 Groovy 为中心。例如,Groovy Closures 在许多地方都被使用,而没有提供非 Groovy 的替代方案。这要求 Kotlin 脚本将一个函数转换为闭包,例如
configure<DependencyManagementExtension> {
imports(delegateClosureOf<ImportsHandler> {
mavenBom("io.spring.platform:platform-bom:Athens-SR1")
})
}
转换为 Java 突显了这个问题,并借鉴了 Gradle 自身的 API,1.0 重载了许多先前只接受 Groovy Closure 的方法,使其也接受 Gradle Action。重载的方法可以让你稍微整理一下,例如
configure<DependencyManagementExtension> {
imports {
it.mavenBom("io.spring.platform:platform-bom:Athens-SR1")
}
}
随着 API 的正式化以及插件接近 1.0,现在是开始使用它的绝佳时机,并让我们在 GitHub 或 Gitter 上告知你发现的任何问题或希望看到的改进。
感谢你迄今为止对该插件的所有反馈和建议。