在 Java 中开发 Gradle 插件所需的确切依赖项是什么?理想情况下,我想从著名的存储库(例如 Maven Central 或类似的存储库)获取它。
我有一个具有核心功能的 Maven 项目,我刚刚添加了两个额外的插件,一个用于 Ant,一个用于 Maven。它们已经经过测试并且可以工作;简单的!现在,我想为 Gradle 插件添加第三个模块,以使任何 Gradle 项目也可以使用此功能。
但是,我找不到开发 Gradle 插件所需的确切依赖项。
Gradle 文档(例如 https://docs.gradle.org/current/userguide/java_gradle_plugin.html )至少可以说写得不是很好。他们提到:
gradleAPI()
依赖项- 或
java-gradle-plugin
依赖项
但他们很不清楚......没有小组,没有版本(真的吗?)。
如果有人能告诉我从哪里可以获得这些依赖项,我将非常感激。
最佳答案
Gradle 的公共(public)和内部 API(又名 gradleApi()
)与 Gradle 发行版捆绑在一起,并非独立发布,因此不易被 Maven 构建使用。这是悬而未决的史诗#1156 (通过允许用户依赖 gradlePublicApi() 确保插件跨版本兼容性)这可能会有所帮助。
由于 Gradle 插件最好使用 Gradle 构建,因此实用的解决方案是从 Maven 调用 Gradle 构建并将生成的工件附加到 Maven 构建。 Andres Almiray ( aalmiray ) 曾在博客文章 Running Gradle Inside Maven 中描述过这一点(Web Archive Link)。他描述了以下高级步骤:
- 创建一个新的 Maven
module
(例如gradle-plugin
)并将其添加到父 POM - 在
gradle-plugin
的 POM 中添加对core
模块的依赖项。使用maven-dependency-plugin将依赖项存储到 Maven 构建文件夹,例如目标/依赖项
。 - 创建
build.gradle
,添加指向target/dependencies
的 Maven 存储库(第 2 步),并让它依赖于core
> 模块以及 gradleApi()。实现 Gradle 插件。 - 使用exec-maven-plugin调用 Gradle 构建。
- 使用maven-resources-plugin将 Gradle 构建的插件 jar 复制到标准 Maven 构建文件夹。
- 使用build-helper-maven-plugin将复制的 jar 附加到 Maven 构建。
示例项目可找到here (gradle-in-maven)。
关于java - Gradle 插件依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59522350/