声纳 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 集成的主要内容,如果未能解决你的问题,请参考以下文章