Gradle预编译脚本插件可以使用java-gradle-plugin吗?

Can Gradle precompiled scripts plugins use java-gradle-plugin?

(Gradle 版本 7.3.3)

我正在关注 the documentation 关于 gradle 预编译脚本插件。

  1. 要使用的插件

本例中使用的是groovy-gradle-plugin。 我尝试使用 java-gradle-plugin 但它似乎没有生成插件 classes。 这是意料之中的事吗?

  1. 插件 ID

遵循文档:

src/main/groovy/my.java-library-convention.gradle would result in a plugin ID of my.java-library-convention.

我想为我的脚本添加前缀:com.mycompany.myproject.conventions-java-library 在这种情况下,生成的插件 classes 在默认包中使用此全名命名。 这是可以预料的吗? 我希望在 com.mycompany.myproject.conventions

中找到一个名为 JavaLibraryPlugin 的 class

The groovy-gradle-plugin is used in this case. I tried with the java-gradle-plugin but it doesn't seem to generate the plugin classes. Is this to be expected?

不太确定你在问什么。 如果您打算应用 java-gradle-plugin 而不是 groovy-gradle-plugin,这当然不会产生任何插件 类。 Java 插件如何知道 Groovy 个源文件?

为什么我不确定这是否是您所问的,因为 groovy-gradle-plugin 已经自动应用了 java-gradle-plugin。因此,如果您想使用 Groovy DSL 预编译脚本插件,只需按照文档应用 groovy-gradle-plugin

Plugins id's

对于 Groovy DSL 预编译脚本插件,如果我没记错的话,您只能遵循该约定。使用 Kotlin DSL 预编译脚本插件,您可以遵循该命名约定,也可以在脚本中使用包语句来“正确建模”插件 ID。