2

I try to execute the mvn sonar:sonar command on a machine where Maven is configured to have no access to external repositories (in reality, this is not exactly the case, but it helps me to explain my problem).

So currently, if I run this command, I get the following error:

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The plugin 'org.codehaus.mojo:sonar-maven-plugin' does not exist or no valid version could be found

I think it means that I have some incorrect metadata in my local repository, as I have a [local repo]\org\codehaus\mojo\sonar-maven-plugin\1.0-beta-1 directory (with the JAR inside, of course).

Have you any idea why my command is failing?

tech infos: Maven 2.2.1, Java 1.6, Sonar 2.1.2

4

3 回答 3

3

您是否尝试过常见问题解答中的建议:

插件 'org.apache.maven.plugins:maven-sonar-plugin' 不存在或找不到有效版本

如果在启动 maven 命令行“mvn sonar:sonar”后收到此错误消息,请将“-U”参数添加到命令行。然后,Maven 将使用最新版本的 Sonar Maven 插件更新其本地存储库。

如果添加“-U”参数不能解决您的问题,您肯定遇到过 Maven 错误MNG-4001。唯一已知的解决方法是删除本地 Maven 存储库中的 org\codehaus\mojo 目录。当然,如果你本地的 Maven 仓库与 Nexus 之类的仓库管理器同步,这个操作也必须在仓库管理器端进行。

于 2010-06-16T09:09:17.093 回答
2

作为对那些从 Jenkins 运行 Sonar(使用插件)的人的提示,我们自己也看到了类似的问题。

但正如官方文档所说:http ://docs.sonarqube.org/display/SONAR/Analyzing+with+Maven部分:如何修复 Maven 插件版本

您可以在 Jenkins -> Configuration -> Sonar -> "Version of sonar-maven-plugin" 中修复 sonar-maven-plugin 的版本:

  • Maven 2 到:1.0
  • Maven 3 到:2.0

结果,它会跳过版本解析 + 查找 => 防止此处报告的问题。

更新

好吧,我刚刚意识到,它适用于任何情况,而不仅仅是詹金斯。您可以明确指定版本以防止查找。

于 2013-08-08T07:12:01.373 回答
1

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

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

于 2010-06-16T12:48:43.167 回答