如何编写自定义gradle插件来处理自定义存储库中自定义模块描述符中的依赖关系?gradle文档说了以下内容,但我还没有找到任何可以告诉我如何操作的内容。
即使您的项目使用的是自定义依赖关系管理系统或类似Eclipse的东西。类路径文件作为依赖关系管理的主数据,编写Gradle插件以在Gradle中使用此数据非常容易。
我一直在为ATG项目维护一个定制的常春藤解析器(源自此项目),但Gradle最近在版本1.8中不推荐使用它,我需要将实现移植到本地Gradle插件。
ATG的实现使用具有清单的“模块”(与Gradle项目不同)。模块描述符的MF文件。这些文件定义了模块所依赖的其他“模块”,以及构成当前模块(直接)类路径的路径列表(JAR或目录)。
例如。
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,我需要以
因为我无法摆脱ATG清单。MF文件,我想写一个写自定义插件,允许它们在Gradle构建中使用。然后,我可以使用Gradle作为构建系统,它也可以生成Eclipse。类路径和。项目文件,并对项目运行Sonar。
Gradle似乎有很多源代码,在过去的几天里翻遍了它,我什么也找不到。
如果有人可以向我指出需要实现的接口列表,以(1)实现自定义存储库,以及(2)实现自定义依赖项解析器(使用自定义文件作为模块描述符),这应该足以让我开始学习。
Eclipse<代码>。上面提到的类路径用例可以通过解析该文件并将其转换为渐变文件依赖项来解决。目前无法插入自定义存储库实现。