如何编写自定义gradle插件来处理自定义存储库中自定义模块描述符中的依赖项? gradle文档说明如下,但我找不到任何告诉我如何的内容。
即使您的项目正在使用自定义依赖关系管理系统或 类似Eclipse .classpath文件的东西,作为主数据 依赖管理,编写Gradle插件非常容易使用 这个数据在Gradle。
我一直在维护Custom Ivy resolver for ATG projects(从this project分叉),但Gradle最近不推荐使用1.8版,我需要将实现移植到本机Gradle插件。
ATG使用'modules'(与Gradle项目不同)的实现,它具有用于模块描述符的MANIFEST.MF文件。这些文件定义了模块所依赖的其他“模块”,以及形成当前模块的(直接)类路径的路径(jar或目录)列表。
e.g。
ATG-Class-Path: lib/classes.jar lib/commons-beanutils-1.7.jar
ATG-Required: MyProj.core MyProj.integration.webservices DAF.Endeca.Assembler
模块依赖项是可传递的,可以引用ATG产品安装中的自定义模块或模块。因此,我需要定义一个可以使用ATG产品安装作为工件源的自定义存储库。
如果没有Gradle,我需要以
的形式维护依赖关系MANIFEST.MF
个文件.classpath
个文件由于我无法摆脱ATG MANIFEST.MF文件,我想写一个自定义插件来允许它们在Gradle构建中使用。然后我可以使用Gradle作为我的构建系统,它也可以生成Eclipse .classpath和.project文件,并针对项目运行Sonar。
Gradle似乎有很多源代码,过去几天翻找它并没有把我带到任何地方。
如果有人可以指出需要实现的接口列表(1)实现自定义存储库,(2)实现自定义依赖项解析器(将自定义文件用作模块描述符),那应该足够了让我开始。
答案 0 :(得分:0)
上面提到的Eclipse .classpath
用例可以通过解析该文件并将其转换为Gradle文件依赖项来解决。目前无法插入自定义存储库实现。