Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 如何在build.gradle外部声明存储库详细信息_Java_Gradle_Build.gradle - Fatal编程技术网

Java 如何在build.gradle外部声明存储库详细信息

Java 如何在build.gradle外部声明存储库详细信息,java,gradle,build.gradle,Java,Gradle,Build.gradle,我使用repositories{}块在build.gradle文件中声明用于依赖项解析的存储库。是否有任何方法可以在build.gradle文件之外声明存储库,这样我就不必为每个其他项目进行声明 我来自maven后台,我们可以在.m2文件夹的settings.xml中声明存储库 请给出建议。依赖项的来源是构建的重要部分。它是帮助提供可复制构建的众多元素之一。Maven假设依赖项的给定版本在所有存储库中都是相同的。遗憾的是,事实并非如此 因此,在每个Gradle构建中声明存储库是很自然的。 这可以

我使用
repositories{}
块在build.gradle文件中声明用于依赖项解析的存储库。是否有任何方法可以在build.gradle文件之外声明存储库,这样我就不必为每个其他项目进行声明

我来自maven后台,我们可以在.m2文件夹的settings.xml中声明存储库


请给出建议。

依赖项的来源是构建的重要部分。它是帮助提供可复制构建的众多元素之一。Maven假设依赖项的给定版本在所有存储库中都是相同的。遗憾的是,事实并非如此

因此,在每个Gradle构建中声明存储库是很自然的。 这可以通过让声明来自项目中的


该脚本应该依赖于
allprojects
块,以确保将存储库添加到多项目构建的所有项目中。

我认为在本地build.gradle之外仍然应该提供存储库,因为通常在组织中,对于依赖项解析,我们通常有非常标准的respository结构,在每个build.gradle文件中声明这些存储库是没有意义的。这有点像是在每个项目上创建硬依赖关系。另外,在开发区域中,Jenkins可以在build job config中解决依赖关系,而build job config又在build.gradle之外。我也不确定将存储库硬编码到代码存储库中是否是一个好主意。当存储库不可用或完全消失时(例如Codehaus),这可能会导致问题。能够在组织内指定存储库实际上也有利于再现性:一旦缓存了库,您就不会那么依赖外部因素。(另外,Maven/Gradle似乎倾向于“泄漏”您试图下载的库的名称,甚至是内部名称,这可能是一个问题。)至少能够使用本地配置进行覆盖是件好事。我后来发现了这一点。答案是将gradle.properties文件中的respository详细信息声明为用户目录中.gradle文件夹中的全局变量。您可以在build.gradle中为所有本地项目使用这些全局变量。