Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将可下载二进制文件合并为Gradle依赖项的正确方法是什么?_Java_Maven_Gradle_Dependency Management - Fatal编程技术网

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

Java 将可下载二进制文件合并为Gradle依赖项的正确方法是什么?,java,maven,gradle,dependency-management,Java,Maven,Gradle,Dependency Management,(注意:我知道,但它似乎只支持.jar和.aar文件,而不支持直接二进制文件或可执行文件) 我正在创建一个项目模板,它依赖于许多第三方库,其中大多数都可以在Maven Central上获得。但也有一些命令行二进制文件存在于公共Git版本或其他稳定URL中 由于我正在编写的Java模块将直接使用这些二进制文件,它们是项目依赖项,但我不确定如何最好地将它们合并到我的Gradle构建中 我不打算通过Maven提供项目模板,也不想将第三方二进制文件上传到Maven存储库。相反,我希望模板的使用者在构建或

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

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

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

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

我发现了这个插件,并通过以下方法将其拼凑成一个依赖项

// 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的新手,但似乎我应该创建一个下载任务,而不仅仅是一个函数,或者完全做其他事情

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

有更好的办法吗