(注:我知道
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)允许模板的使用者尽可能多地进行一键设置。
有更好的办法吗?