gpt4 book ai didi

gradle - Gradle 中的自定义依赖管理插件

转载 作者:行者123 更新时间:2023-12-04 11:00:48 25 4
gpt4 key购买 nike

您如何编写自定义 gradle 插件来处理自定义模块描述符中的依赖项,来自自定义存储库? gradle 文档说明了以下内容,但我无法找到任何告诉我如何操作的内容。

Even if your project is using a custom dependency management system or something like an Eclipse .classpath file as master data for dependency management, it is very easy to write a Gradle plugin to use this data in Gradle.



我一直在维护 Custom Ivy resolver for ATG projects (从 this project 派生),但 Gradle 最近在 1.8 版中弃用了它,我需要将实现移植到 native Gradle 插件。

ATG 的实现使用具有模块描述符的 MANIFEST.MF 文件的“模块”(与 Gradle 项目不同)。这些文件定义了模块所依赖的其他“模块”,以及构成当前模块(直接)类路径的路径列表(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 的 MANIFEST.MF文件
  • eclipse .classpath文件
  • Ant 构建脚本的依赖关系
  • SonarQube 配置

  • 由于我无法摆脱 ATG MANIFEST.MF 文件,我想编写一个自定义插件以允许它们在 Gradle 构建中使用。然后我可以使用 Gradle 作为我的构建系统,它还可以生成 Eclipse .classpath 和 .project 文件,并针对项目运行 Sonar。

    Gradle 似乎有很多源代码,过去几天翻阅它并没有让我有任何收获。

    如果有人可以向我指出需要实现的接口(interface)列表(1)实现自定义存储库,以及(2)实现自定义依赖解析器(使用自定义文件作为模块描述符),那应该足以让我开始了。

    最佳答案

    eclipse .classpath上面提到的用例可以通过解析该文件并将其转换为 Gradle 文件依赖项来解决。目前无法插入自定义存储库实现。

    关于gradle - Gradle 中的自定义依赖管理插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20453233/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com