Artifactory Gradle插件-无效的目标主机解析URL



我在解决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:"后面的单斜杠和域名"artifactory"。奇怪的

我还尝试在每个发布和解析块中再次指定上下文URL,结果相同。settings.gradle和build.properties中都没有任何可能覆盖上下文URL的内容。几个小时后,我被难住了。劝告

我最终在上下文URL中加倍了域前的斜杠,如下所示:

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

然后,它将正确构建解析程序URL,如下所示:

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

不。

如果主机无效,例如包含下划线,则可能发生这种情况。我在主机上加了一个下划线,就可以得到这个确切的问题,当我把它拿出来的时候,这个问题就消失了。这里看起来有类似的问题:

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

主机被认为是无效的,不用于连接。也许额外的斜杠绕过了这一点,使myserver:8801通过类似于路径的一部分而不是主机来逃避验证。

最新更新