(这个问题详细阐述了a question I asked earlier,但有足够的差异,我认为这需要另外一个问题)
This post on the Gradle forums描述了类似的症状,但与我的问题并不完全相同。
就像那里的海报一样,我收到错误:
找不到ID为'org.sonarqube'的插件。
尝试在我的build.gradle文件中使用SonarQube Gradle插件时包含以下内容:
buildscript {
repositories {
mavenLocal()
maven { url 'http://[artifactory-url]:8081/artifactory/plugins-release/' }
}
dependencies {
classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:1.2")
}
}
apply plugin: 'org.sonarqube'
他说他的Artifactory实例已经缓存了插件,而我的实例却没有。与他类似,我在公司防火墙后面,并且没有关于Artifactory的管理员权限,但我可以看到plugins-release
虚拟仓库确实包括https://plugins.gradle.org/m2和http://jcenter.bintray.com。通常,只需从我们的Artifactory服务器请求库就可以立即查找并缓存该库,但在这种情况下,它显然是失败的。
当我删除apply plugin...
行时,我看到以下错误:
> Could not find org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:1.2.
Searched in the following locations:
file:/C:/Users/[username]/.m2/repository/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/1.2/sonarqube-gradle-plugin-1.2.pom
file:/C:/Users/[username]/.m2/repository/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/1.2/sonarqube-gradle-plugin-1.2.jar
http://[artifactory-url]/artifactory/plugins-release/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/1.2/sonarqube-gradle-plugin-1.2.pom
http://[artifactory-url]/artifactory/plugins-release/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/1.2/sonarqube-gradle-plugin-1.2.jar
所以,我很确定Artifactory无法找到并缓存插件。如果我浏览到https://plugins.gradle.org/m2/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/1.2/sonarqube-gradle-plugin-1.2.pom,我可以访问POM文件,对于JAR文件也是如此,但我注意到如果我浏览到https://plugins.gradle.org/m2/org/sonarsource/scanner,它不会包含'gradle'作为子目录。我不知道这是否相关,但也许这就是我在Artifactory看到的问题的原因?
我不确定是否将此作为针对该插件的错误提出,或者是否是Artifactory问题,或者仅仅是我们方面的某种错误配置。任何想法都非常感激!
感谢@drorb,我从Artifactory得到了一条痕迹,并发现:
2016-04-12T10:28:40.918 + 01:00执行HEAD请求https://plugins.gradle.org/m2/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/1.2/sonarqube-gradle-plugin-1.2.pom
2016-04-12T10:28:40.924 + 01:00收到关于远程信息请求的状态{}(消息:501) - 返回不合理的资源
501'未实现',所以我假设这告诉我plugins.gradle.org repo不支持HEAD请求,这似乎意味着Artifactory无法正确查询它。我很惊讶它适用于其他人 - 也许有一些Artifactory配置我可以改为不做HEAD请求?
进一步挖掘让我意识到HEAD请求确实实际上给了我一个正确的响应(303导致200),所以我认为问题是来自我们的Artifactory服务器的连接。这似乎不值得添加作为答案,但我会留在这里,以防其他人遇到类似的问题。
答案 0 :(得分:1)
以下是Gradle conf的片段,其中有效:
buildscript {
repositories {
maven {
url "http://[artifactory-url]:7980/artifactory/libs-release"
}
}
dependencies {
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:1.2"
}
}
apply plugin: 'org.sonarqube'
我能看到的唯一区别是我们将/ artifactory / libs-release放在maven url中,而你有/ artifactory / plugins-release。也许您应该尝试指向libs-release,看看是否有效?