代码之家  ›  专栏  ›  技术社区  ›  Brian H.

将可下载二进制文件合并为Gradle依赖项的正确方法是什么?

  •  1
  • Brian H.  · 技术社区  · 7 年前

    (注:我知道 JitPack 但它似乎只支持 .jar 和 .aar 文件,而不是直接二进制文件或可执行文件)

    我正在创建一个项目模板,它依赖于许多第三方库,其中大多数都可以在Maven Central上获得。但也有一些命令行二进制文件存在于公共Git版本或其他稳定URL中。

    由于我正在编写的Java模块将直接使用这些二进制文件,它们是一个项目依赖项,但我不确定如何最好地将它们合并到我的Gradle构建中。

    我不打算通过Maven提供项目模板,也不想将第三方二进制文件上传到Maven存储库。相反,我希望模板的使用者在构建或运行时下载二进制文件。

    我发现了 gradle-download-task 插件,并通过以下方式将其拼凑成一个依赖项。

    // build.gradle
    
    plugins {...}
    
    def downloadXXX() {
       mkdir 'bin'
       download {
          src 'https://github.com/.../tagged_release/xxx.exe'
          dest 'bin'
          onlyIfModified true      
       }
       return files("bin/xxx.exe")
    }
    
    ...
    dependencies {
        testImplementation ...
        implementation ...
    
        implementation downloadXXX()
    
    }
    

    这似乎奏效了。在编译/构建任务中检查二进制文件的存在,如果丢失或过时,则下载二进制文件,但是 闻起来不对 任务 而不仅仅是一个函数,或者完全做其他事情。

    我知道,如果不使用Maven,我将牺牲很多内置版本控制支持,但我更感兴趣的是a)在一个地方声明/显示项目依赖项,b)允许模板的使用者尽可能多地进行一键设置。

    有更好的办法吗?

    0 回复  |  直到 7 年前