gradle - 从 ml-gradle“提供者”项目模式启用可重用的 gradle 任务?
问题描述
在ml-gradle
中,我们可以创建一个“提供者”项目来捆绑共享的 MarkLogic 资产(模块、模式等)并从其他依赖ml-gradle
项目中使用它们。
https://github.com/marklogic-community/ml-gradle/tree/master/examples/dependency-project
我想知道我们是否还可以在provider
项目中合并自定义 MarkLogic gradle 任务。或者我们需要创建一个 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 插件,用户可以选择将其应用于他们的项目。
推荐阅读
- node.js - 将 Node/mongodb 应用程序部署到 GKE 并且由于 crashloopbackoff 而一直失败
- flutter - 如何在颤动中更改底部工作表对话框内的文本?
- vue.js - Vuetify:v-text-field 看起来不像文档
- python - SPARQL 查询返回邻居数
- google-earth-engine - 无法在 Google 地球引擎上可视化图像
- html - 移动设备上的 Google WebApp 无法适应较小的屏幕
- java - 无法使字段公共 java.lang.String blockchain.Block.hash 可访问:模块 noobChain 不会“将区块链”“导出”到模块 gson
- java - Java 供应商<> 获取来源信息
- c++ - 为什么 sizeof() 不返回正确长度的 char 数组?
- java - 在处理来自 API 的数据时等待调用 Intent