从 ml-gradle "provider" 项目模式中启用可重用的 gradle 任务?

Enable reusable gradle tasks from the ml-gradle "provider" project pattern?

ml-gradle 中,我们可以创建一个 "provider" 项目来捆绑共享的 MarkLogic 资产(模块、模式等)并从其他相关的 ml-gradle 项目中使用它们。

https://github.com/marklogic-community/ml-gradle/tree/master/examples/dependency-project

我想知道我们是否也可以将自定义 MarkLogic gradle 任务合并到 provider 项目中。或者我们需要创建一个 gradle 插件来启用此类功能。

https://github.com/marklogic-community/ml-gradle/wiki/Writing-your-own-task

谢谢!

我认为这是不可能的,因为我认为它们被认为是两种不同的依赖关系。 "mlBundle"是ml-gradle定义的项目配置,用户可以定义与该配置关联的依赖,如marklogic-unit-test。但是可重用的 Gradle 任务被打包为 Gradle 插件,插件依赖与项目的构建脚本相关联,与项目配置分开。

我认为一个合理的比较是 Spring Boot - 您可以 "compile" 依赖于 Spring Boot jar,以便它包含在您的 Java 应用程序中。另外,您的 Gradle 项目还可以依赖 Spring Boot Gradle 插件来继承 "bootRun" 和 "bootJar" 等任务。

所以对于你的用例,我相信你首先需要一个可以通过 mlBundle 依赖的包,然后你需要一个单独的 Gradle 插件,用户可以选择将其应用到他们的项目。