在Plugin-Publish插件的帮助下,Gradle插件可以发布到门户网站。 最近发布的1.0.0版本的插件通过更强大的意见和更直接的配置,大大改善了这个过程。
更强的约定
Gradle插件开发有很长的历史,并逐渐发展到使用辅助插件来帮助你设置插件项目。最重要的几个:
- Gradle 插件开发插件(
java-gradle-plugin) - Maven发布插件(
maven-publish)
Plugin-Publish插件也有这样漫长的历史,它最终支持了所有不同的辅助插件组合。这导致了发布插件的方式太多,配置选项也太多,其中有些语义难以理解,这取决于具体的设置。
例如,发布元数据可以通过maven-publish 插件或以其他临时方式生成。根据这一点,插件和标记的GAV坐标都会有所不同,产生令人惊讶的效果。
1.0.0版本的Plugin-Publish插件通过收紧和强制执行约定来解决这些问题。主要的辅助插件总是被自动应用的。
maven-publish始终用于生成发布元数据(Maven POM & Gradle Module Metadata)。java-gradle-plugin始终被应用并作为插件定义的基础;因此,gradlePlugin块现在是强制性的,pluginBundle块也被精简以消除所有重复。
明确的配置
在配置插件的发布时,最终结果的每个属性都应该有一个单一的指定方式。
为了确保这一点,1.0.0版本的Plugin-Publish插件删除了pluginBundle.plugins 块,因为它与gradlePlugin.plugins重复了 。
可是,这种重复(还)不完美,所以需要添加pluginBundle.pluginTags 映射,以便能够为一起发布的插件定义不同的标签。更合理的解决方案是允许在gradlePlugin.plugins 块的元素中指定标签,但这只有从Gradle7.6 开始才能实现。
请看这里的一个例子,一旦Gradle7.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 插件的主要文档在Plugin Portal上。在Gradle Manual中还有额外的文档,但请注意,从Gradle7.6 开始,该手册将只关注这个新版本的com.gradle.plugin-publish 。
总结
通过这种简化和明确的设置,我们鼓励插件作者尽快采用这个新版本。
我们希望在我们的社区Slack或Gradle论坛上得到你的反馈。如果你在新版本中遇到问题,或者支持我们的工作,请立刻联系我们。