我在解决神器存储库的位置方面存在问题,因为主机名被破坏了。特别是,尽管有上下文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的任何内容。几个小时后,我很难过。建议?
答案 0 :(得分:1)
我最后在上下文URL中将域前面的斜线加倍,如下所示:
contextUrl = 'http:////myserver:8081/artifactory'
然后它将正确构建解析器URL,如下:
http://myserver:8081/artifactory/libs-release
说不上。
答案 1 :(得分:0)
如果主机无效,可能会发生这种情况,例如,如果它包含下划线。通过在主机中添加下划线,我能够得到这个问题,当我拿出它时问题就消失了。看起来像这里的类似问题:
主机被视为无效,并且未用于连接。也许通过使myserver:8081通过类似路径的一部分而不是主机来逃避验证,额外的斜线绕过了它。