Artifactory Gradle插件 - 目标主机解析网址无效

时间:2015-11-27 20:34:49

标签: gradle spring-boot artifactory

我在解决神器存储库的位置方面存在问题,因为主机名被破坏了。特别是,尽管有上下文URL或存储库密钥,目标主机部分也会被转换为" http:/ artifactory"。请注意单斜杠 - 我没有在任何地方配置此*"。

这是来自build.gradle的代码段:

artifactory {
contextUrl = 'http://myserver:8081/artifactory'  //The base Artifactory URL if not overridden by the publisher/resolver
publish {
    repository {
        repoKey = 'libs-snapshot-local'
      maven = true
        username = 'user'
        password = 'password'
    }
   defaults {
        publications ('mavenJava')
    }
}
resolve {
    repository {
        repoKey = 'libs-release'
        maven = true
        username = 'user'
        password = 'password'
    }
  }
}

我看到的错误是:

> Could not get resource 'http:/artifactory/libs-release/org/springframework/boot/spring-boot-starter-parent/1.3.0.RELEASE/spring-boot-starter-parent-1.3.0.RELEASE.pom'.
     > Target host must not be null, or set in parameters.

在" http:"之后,您将看到上面的单斜杠。和#34; artifactory"的域名。怪异。

我还试图在每个发布和解析块中再次指定Context URL,结果相同。 settings.gradle和build.properties都没有可能覆盖上下文URL的任何内容。几个小时后,我很难过。建议?

2 个答案:

答案 0 :(得分:1)

我最后在上下文URL中将域前面的斜线加倍,如下所示:

contextUrl = 'http:////myserver:8081/artifactory'

然后它将正确构建解析器URL,如下:

http://myserver:8081/artifactory/libs-release

说不上。

答案 1 :(得分:0)

如果主机无效,可能会发生这种情况,例如,如果它包含下划线。通过在主机中添加下划线,我能够得到这个问题,当我拿出它时问题就消失了。看起来像这里的类似问题:

https://stackoverflow.com/questions/29775942/maven-repositories-with-underscores-in-the-url-gives-notransportexception-in-a

主机被视为无效,并且未用于连接。也许通过使myserver:8081通过类似路径的一部分而不是主机来逃避验证,额外的斜线绕过了它。