gradle - Artifactory找不到SonarQube Gradle插件

标签 gradle sonarqube artifactory gradle-plugin sonarqube-scan

(此问题详细说明于a question I asked earlier,但有足够的差异,我认为值得单独提出一个问题)

This post on the Gradle forums描述了类似的症状,但与我的问题不太相同。

像那里的海报一样,我得到了错误:

Plugin with id 'org.sonarqube' not found.



当尝试在我的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/m2http://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 Executing HEAD request to 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 Received status {} (message: 501) on remote info request - returning unfound resource



501未实现,因此我认为这是在告诉我plugins.gradle.org存储库不支持HEAD请求,这似乎意味着Artifactory无法正确查询它。我很惊讶它对于其他人还是有用的-也许有些Artifactory配置可以更改为不执行HEAD请求?

进一步更新原因,但并非真正的答案

进一步的挖掘使我意识到HEAD请求实际上确实给了我适当的响应(303导致200),因此我认为问题是来自Artifactory服务器的连接。这似乎不值得添加答案,但我将其保留在此处,以防它帮助其他遇到类似问题的人。

最佳答案

这是我们的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 / plugins-release时,我们将/ artifactory / libs-release放在了maven url中。也许您应该尝试指向libs-release,看看是否可行?

关于gradle - Artifactory找不到SonarQube Gradle插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36553930/

相关文章:

maven - 使用Gradle从 Artifact 中下载Jar的所有依赖项

java - 如何基于注解(类似于Android R)自动生成具有静态成员的类

scala - Spark collect()/count() 永远不会完成,而 show() 运行速度很快

android - 无法解析 com.android.support.constraint :constraint-layout:1. 1.3

java - 是否可以在 sonarqube 的多模式项目中跳过 Java 插件

Sonar Qube 6.1 : How can I see the changes over time without the dashboards?

java - 无法忽略 lombok 注释 - Sonarqube

gradle - 下载依赖项jar时,如何下载其依赖项

gradle - 如何从Gradle访问公司 Artifactory 仓库?

gradle - Gradle:jar任务中的zip文件