声纳 Maven 集成

Posted

技术标签:

【中文标题】声纳 Maven 集成【英文标题】:Sonar maven integration 【发布时间】:2010-11-16 20:55:06 【问题描述】:

我已关注directions to integrate Sonar with Maven - 更改了 settings.xml 以包含位于以下位置的声纳存储库:

http://localhost:9000/deploy/maven

并且我已经确认我可以在以下位置看到 readme.txt 文件:

http://localhost:9000/deploy/maven/README.txt

但是在运行sonar:sonar 时,我不断收到以下消息:

[INFO] [sonar:sonar]
[INFO] Sonar host: http: //localhost:9000
[INFO] Sonar version: 1.7
Downloading: http: //localhost:9000/deploy/maven/org/codehaus/sonar/runtime/sonar
-core-maven-plugin/20090803213910/sonar-core-maven-plugin-20090803213910.pom
Downloading: http: //<MY SERVER URL>:8081/nexus/content/groups/public/org/codehaus/
sonar/runtime/sonar-core-maven-plugin/20090803213910/sonar-core-maven-plugin-200
90803213910.pom
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Can not execute Sonar

Embedded error: Unable to build project for plugin 'org.codehaus.sonar.runtime:s
onar-core-maven-plugin': POM 'org.codehaus.sonar.runtime:sonar-core-maven-plugin
' not found in repository: Unable to download the artifact from any repository

  org.codehaus.sonar.runtime:sonar-core-maven-plugin:pom:20090803213910

来自指定的远程存储库:

声纳(http://localhost:9000/deploy/maven),

nexus (http://:8081/nexus/content/groups/public),

对于项目 org.codehaus.sonar.runtime:sonar-core-maven-plugin [信息] --------------------------------------------- --------------------------

知道我错过了什么吗?

【问题讨论】:

【参考方案1】:

localhost 不是远程主机; localhost 是您所在机器的别名。所以它试图从你机器上运行的 maven 存储库服务器下载这些东西。

【讨论】:

正确,我尝试将结果上传到的 Sonar 服务正在运行 mvn sonar:sonar 的同一台机器上运行。我还在这台机器上安装了 Nexus(如原始帖子所示),但出于调试目的以解决此问题,我在 Maven settings.xml 中注释掉了镜像配置 - 结果相同。【参考方案2】:

不确定是什么问题,但通过升级到版本 1.9.2(我试图让 1.7 工作,因为它当前在另一台服务器上运行)并删除项目 POM 中的 sonar-maven-plugin 定义,运行mvn sonar:sonar 能够成功执行。

【讨论】:

【参考方案3】:

1.在您的本地主机上运行声纳所需的 maven 插件位于 @http://localhost:9000/deploy/maven/............(它们与您的声纳安装捆绑在一起)

2. 选择插件(与您的声纳安装捆绑) 您需要在应用程序的根目录中执行“mvn sonar:sonar”

3.您不必依赖公司的nexus 存储库

4.当你不想依赖nexus仓库时,你需要在你的settings.xml的镜像声明中镜像出'sonar' => *,!sonar 在你的镜像定义中包含这个 !sonar

    在您的一个有效个人资料中声明 http://localhost:9000

    启动您的声纳服务器

现在执行命令 'mvn sonar:sonar' ,maven-sonar 插件是从本地声纳安装中挑选出来的..

祝你好运, aravind.dev

【讨论】:

【参考方案4】:

就我而言,我可以通过升级到 maven 3 和 sonar 2.4 来解决这个问题。我还发现使用更新选项 (-U) 运行 maven 会有所帮助。

【讨论】:

【参考方案5】:

很抱歉回复这个旧帖子。只是认为this link 可能指向解决方案。

基本上,您可以尝试修改 maven setting.xml(在 maven 所需的 .m2 文件夹内)中的标签,如下所示:

<mirrorOf>*,!sonar</mirrorOf>

它告诉 maven 避免使用您的正常存储库进行任何声纳下载任务

【讨论】:

以上是关于声纳 Maven 集成的主要内容,如果未能解决你的问题,请参考以下文章

为单元和集成测试生成声纳覆盖率报告

声纳项目集成

Azure Devops maven 构建在声纳 qube 实例中失败

詹金斯/声纳集成

使用 Ant 将 JaCoCo 集成到声纳中

声纳图集成 - 无法加载自定义指标文件 SonargraphMetrics.properties