将工件发布到Artifactory时Jenkins出错

时间:2015-02-05 20:53:56

标签: jenkins gradle artifactory

作为Jenkins的工作,我有一个Spring-boot项目的gradle构建。我正在使用Jenkins的artifactory插件将生成的JAR发布到我们的神器服务器。

构建成功完成并且工件已发布,但Jenkins控制台报告与Artifactory通信时出错(摘自下面列出的控制台)。

我正在使用Jenkins 1.597,artifactory插件2.2.5和Artifactory 3.0.3

有人可以建议如何解决这个问题或帮助我更好地了解问题所在吗?

谢谢!

- 约翰

:artifactoryPublish
Deploying artifact: http://artifactory.ngdc.noaa.gov/artifactory/jenkins-local/ngdc/hazards/tsunamis/1.0-SNAPSHOT/tsunamis-1.0-SNAPSHOT.jar
Failed while reading the response from: PUT http://artifactory.ngdc.noaa.gov/artifactory/jenkins-local/ngdc/hazards/tsunamis/1.0-SNAPSHOT/tsunamis-1.0-SNAPSHOT.jar;build.name=tsunami;build.timestamp=1423158706241;build.number=42;vcs.revision=afd5283084a119a1e8a2983e0e94cfca7fc14df2 HTTP/1.1
org.codehaus.jackson.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: org.apache.http.conn.EofSensorInputStream@b51b399; line: 1, column: 2]
    at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:943)

5 个答案:

答案 0 :(得分:0)

似乎升级到Artifactory 3.6.0解决了这个问题。现在使用Jenkins 1.605和Artifactory 3.6.0,不再看到问题了。

答案 1 :(得分:0)

我只是通过在神器服务器网址(Jenkins - &gt;管理Jenkins - &gt;配置系统 - &gt; Artifactory)中将http协议更改为https来解决了这个问题。

而不是 Artifactory服务器URL

http://my.artifactory.server/artifactory

我有 Artifactory服务器网址

https://my.artifactory.server/artifactory

说明

我的神器服务器位于nginx代理后面,它以HTTP 301(重定向)响应http协议请求。 Jenkins artifactory插件无法处理此类重定向并需要直接URL。

您可以使用culr

检查您的网址是否是直接的
curl -l http://my.artifactory.server/artifactory

响应:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.6.3</center>
</body>
</html>

答案 2 :(得分:0)

我遇到了同样的问题。我通过将artifactory url添加到非代理主机来解决它,如下所示 管理Jenkins - &gt;配置系统 - &gt;全球物业 检查环境变量,并使用以下名称配置属性

-Dgradle.user.home=<your .gradle path> -Dhttp.proxyHost=<httpProxy> -Dhttp.proxyPort=<port_of_httpProxyHost> **-Dhttp.nonProxyHosts=<your_artifactory_url>** -Dhttps.proxyHost=<httpsProxy> -Dhttps.proxyPort=<port_of_httpsProxyHost>

答案 3 :(得分:0)

我通过将Allow double escaping放入IIS请求过滤来解决了这个问题。其他代理可能需要类似的设置。

答案 4 :(得分:0)

我的问题是将工件名称-X-0.1-TEST.zip发布到快照存储库。将版本更改为X-0.1-SNAPSHOT后,它就上传了。