Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
我应该如何处理在Cloudbees Jenkins构建中下载Maven依赖项的问题?_Maven_Jenkins_Gradle_Cloudbees - Fatal编程技术网

我应该如何处理在Cloudbees Jenkins构建中下载Maven依赖项的问题?

我应该如何处理在Cloudbees Jenkins构建中下载Maven依赖项的问题?,maven,jenkins,gradle,cloudbees,Maven,Jenkins,Gradle,Cloudbees,我在Cloudbees Jenkins实例中构建了一个Java项目。构建过程使用Gradle并从Maven存储库获取其所有依赖项。从Maven Central下载一个或多个依赖项时,构建过程通常会遇到问题。最近,出现了appengine SDK: Download https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.pom FAILURE:

我在Cloudbees Jenkins实例中构建了一个Java项目。构建过程使用Gradle并从Maven存储库获取其所有依赖项。从Maven Central下载一个或多个依赖项时,构建过程通常会遇到问题。最近,出现了appengine SDK:

Download https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.pom

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all dependencies for configuration ':appengineSdk'.
> Could not determine artifacts for com.google.appengine:appengine-java-sdk:1.9.23
   > Could not get resource 'https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.zip'.
      > Could not HEAD 'https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.zip'.
         > The target server failed to respond

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
URL是有效的,只是有时候repo1.maven.org或我路径中的某个代理似乎会打嗝,下载失败。很多时候(虽然并不总是,grrr…)如果我进入并手动启动构建,下载问题就会得到解决,构建就会成功

在一个独立的Jenkins实例中(不是在Cloudbees),这并没有什么大不了的,因为我可以维护一个Gradle缓存,并且只需下载一次依赖项。因为我的Cloudbees环境通常会在每次构建(重新下载所有内容)时刷新,所以构建在运行时会失败很多次

我正在寻找在Cloudbees环境中处理此问题的最佳方法的建议。例如:

  • 我可以在Cloudbees环境中缓存部分或所有依赖项吗
  • 我可以调用Gradle命令提前下载所有依赖项吗
  • 我可以写一个Gradle任务来下载依赖项并适当地重试吗
  • 等等

如果需要的话,我不介意写一个定制的Gradle任务,但我不太确定从哪里开始。因此,如果答案是这样的话,那么指向文档的指针是值得赞赏的,我将发布我的最终实现作为替代答案。

尝试设置一个将代理maven.org的私有回购实例?

p.s。我想也许我可以通过取消构建的“Force GRADLE\u USER\u HOME”选项来处理这个问题。这使缓存位于用户~/.gradle中。有一点改进,因为不需要为每个构建重新创建缓存。然而,随着时间的推移,我似乎得到了不同的从属构建服务器(和主目录),因此许多构建仍然需要下载依赖项。您是建议使用,还是建议我应该独立于Cloudbees建立自己的Maven存储库?我查看了Cloudbees文档,没有找到一种方法来设置他们的私有maven存储库来代理maven.org。。。如果这是你的建议,你能给我指一个推荐人吗?