简化 Plugin-Publish 插件
使用 Plugin-Publish 插件 配置将 Gradle 插件发布到 Portal。最近发布的 1.0.0 版本 插件通过更强的意见和更直接的配置,显著改善了该过程。
更强的约定
Gradle 插件开发有着悠久的历史,并且逐渐演变为使用辅助插件来帮助您设置插件项目。 最重要的插件是
- Gradle 插件开发插件 (
java-gradle-plugin
) - Maven 发布插件 (
maven-publish
)
Plugin-Publish 插件也拥有悠久的历史,它最终支持了所有辅助插件的各种组合。 这导致了太多发布插件的方式,以及太多配置选项,其中一些选项的语义难以理解,具体取决于确切的设置。
例如,发布元数据可以通过 maven-publish
插件或其他临时方式生成。 具体取决于此,插件和标记 GAV 坐标都会有所不同,并产生令人惊讶的效果。
Plugin-Publish 插件的 1.0.0 版 通过收紧和强制执行约定来解决这些问题。 主要辅助插件始终自动应用
maven-publish
始终用于生成发布元数据(Maven POM 和 Gradle 模块元数据)。java-gradle-plugin
始终应用并用作插件定义的基础; 因此,gradlePlugin
块现在是强制性的,并且pluginBundle
块已被修剪以删除所有重复项。
明确的配置
在配置插件的发布时,最终结果的每个属性都应该有一种指定方式。
为了确保这一点,Plugin-Publish 插件的 1.0.0 版 正在删除 pluginBundle.plugins
块,因为它与 gradlePlugin.plugins
重复。
不幸的是,重复并不(尚未)完美,因此需要添加 pluginBundle.pluginTags
映射才能为一起发布的插件定义不同的标签。 更优雅的解决方案是在 gradlePlugin.plugins
块的元素中指定标签,但这只有在 Gradle 7.6
及更高版本中才有可能。
请查看此处的示例,待 Gradle 7.6
发布后,将进一步改进。
明确定义的交互
版本 1.0.0 指定了(并自动化)Plugin-Publish 插件与其他常用插件的交互方式。
如果应用了这些插件,用户将在控制台上收到有关它们触发的自动配置的通知。
重大变更
为了加强约定和简化配置,版本 1.0.0 也带来了一些重大变更。
Plugin-Publish 插件支持的最低 Gradle 版本变为 4.10.3
。之前是 3.5.1
。
将 maven-publish
插件设为必选,也导致 mavenCoordinates
和 withDependencies
块被完全移除。它们提供的功能不再需要或有意义。
文档
使用 com.gradle.plugin-publish
插件的主要文档在插件门户网站上。在Gradle 手册中还有其他文档,但请注意,手册将从 Gradle 7.6
开始重点介绍此新版本的 com.gradle.plugin-publish
。
结论
通过这种简化和清晰的设置,我们鼓励插件作者尽快采用此新版本。
我们期待您在我们的社区 Slack 或Gradle 论坛上提供反馈。如果您遇到新版本的问题,或者想表达您对我们工作的支持,请随时与我们联系。