执行“mvn sonar:sonar”,无需外部访问

时间:2010-06-16 08:47:15

标签: maven-2 sonarqube

我尝试在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

3 个答案:

答案 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的版本”:

  • for Maven 2 to:1.0
  • for Maven 3 to:2.0

结果它会跳过版本分辨率+ lookup =&gt;防止此处报告的问题。

<强>更新

嗯,我刚刚意识到,它适用于任何不仅仅是jenkins的情况。您可以明确指定版本以防止查找。

答案 2 :(得分:1)

我的问题现在已解决,因为它主要是maven元数据文件的问题。

org/codehaus/mojo/sonar-maven-plugin未包含正确的maven-metadata.xml文件。因此,Maven 2无法知道需要哪个版本的插件。添加它解决了我的问题。

相关问题