首页 文章

将工件发布到Artifactory时Jenkins出错

提问于
浏览
7

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

构建成功完成并且工件已发布,但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)

4 回答

  • 0

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

  • 0

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

  • 0

    我只是通过在神器服务器URL(Jenkins - > Manage Jenkins - > Configure System - > Artifactory)中将 http 协议更改为 https 来解决了这个问题 .

    而不是Artifactory服务器URL:

    http://my.artifactory.server/artifactory
    

    我有Artifactory服务器URL:

    https://my.artifactory.server/artifactory
    

    解释

    我的神器服务器位于 nginx proxy之后,它以 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>
    
  • 0

    我有同样的问题 . 我通过将artifactory url添加到非代理主机来解决它,如下面的Manage Jenkins - > Configure System - > Global Properties Check Environment Variables,并使用如下名称配置属性

    -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>
    

相关问题