什么是将一个可下载的二进制的摇篮依赖的正确方法?

时间:2019-02-02 00:08:28

标签: java maven gradle dependency-management

(注意:我知道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()

}

这似乎有效。在编译/构建任务中检查二进制文件的存在,如果缺少或过时,则将其下载,但闻到错误。尽管我不熟悉Gradle,但似乎应该创建一个下载 task 而不是仅仅一个函数,或者完全做其他事情。

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

有更好的方法吗?

0 个答案:

没有答案