在 ml-gradle
中,我们可以创建一个“provider”项目来捆绑共享的 MarkLogic Assets (模块、模式等),并从其他依赖的 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 是一个合理的比较 - 您可以对 Spring Boot jar 进行“编译”依赖,以便将其包含在您的 Java 应用程序中。另外,您的 Gradle 项目还可以依赖 Spring Boot Gradle 插件来继承“bootRun”和“bootJar”等任务。
因此,对于您的用例,我相信您首先需要一个可以通过 mlBundle 依赖的包,然后您需要一个单独的 Gradle 插件,用户可以选择将其应用到他们的项目中。
关于gradle - 从 ml-gradle "provider"项目模式启用可重用的 gradle 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61298046/