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

Artifactory Gradle plugin - invalid target host resolution URL

我在解析我的工件存储库的位置时遇到问题,因为主机名被破坏了。特别是,尽管有上下文 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

不知道。

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

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