我尝试在Maven配置为无法访问外部存储库的机器上执行mvn sonar:sonar
命令(实际上,情况并非如此,但它可以帮助我解释我的问题)。< / p>
所以目前,如果我运行此命令,我会收到以下错误:
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The plugin 'org.codehaus.mojo:sonar-maven-plugin' does not exist or no valid version could be found
我认为这意味着我的本地存储库中有一些不正确的元数据,因为我有一个[local repo]\org\codehaus\mojo\sonar-maven-plugin\1.0-beta-1
目录(当然,里面有JAR)。
你知道我的命令失败的原因吗?
tech infos:Maven 2.2.1,Java 1.6,Sonar 2.1.2
答案 0 :(得分:3)
您是否尝试过常见问题解答中的建议:
The plugin 'org.apache.maven.plugins:maven-sonar-plugin' does not exist or no valid version could be found
如果您收到此错误消息后 启动maven命令行“mvn 声纳:声纳“添加”-U“参数 命令行。然后Maven会 使用更新其本地存储库 最新版的Sonar Maven 插件。
如果添加“-U”参数则不会 解决你的问题,你当然可以 遇到Maven bug MNG-4001。该 只有已知的解决方法是删除 你的org \ codehaus \ mojo目录 本地Maven存储库。当然,如果 您当地的Maven存储库是 与存储库管理器同步 像Nexus一样,这个操作必须是 也在存储库管理器上完成 侧。
答案 1 :(得分:2)
正如Jenkins(使用插件)运行Sonar的人的提示,我们自己也看到了类似的问题。
但正如官方文档所说:http://docs.sonarqube.org/display/SONAR/Analyzing+with+Maven部分:如何修复Maven插件的版本
您可以在Jenkins中修复sonar-maven-plugin的版本 - &gt;配置 - &gt;声纳 - &gt; “sonar-maven-plugin的版本”:
结果它会跳过版本分辨率+ lookup =&gt;防止此处报告的问题。
<强>更新强>:
嗯,我刚刚意识到,它适用于任何不仅仅是jenkins的情况。您可以明确指定版本以防止查找。
答案 2 :(得分:1)
我的问题现在已解决,因为它主要是maven元数据文件的问题。
org/codehaus/mojo/sonar-maven-plugin
未包含正确的maven-metadata.xml
文件。因此,Maven 2无法知道需要哪个版本的插件。添加它解决了我的问题。