为什么maven-sonar-plugin不存在?

时间:2015-12-17 04:33:08

标签: maven jenkins sonarqube sonarqube-4.5


我遇到了与https://issues.apache.org/jira/browse/MNG-4001中类似的问题 但是使用maven-sonar-plugin。我使用的版本是: Jenkins - 1.580.1,Jenkins -2.1中的SonarQube插件,尝试使用Sonar 4.0和SonarQube 4.5.1但遇到同样的错误,声纳-maven-plugin:2.6 /2.7.1(试过两个)
我面对这个我在Jenkins配置中使用Sonar post build步骤时出错,这是在不同的工作中看到的常见问题 错误是

 [INFO] Searching repository for plugin with prefix: 'sonar'.
 [INFO] artifact org.apache.maven.plugins:maven-sonar-plugin: checking for updates from central
 [INFO] artifact org.apache.maven.plugins:maven-sonar-plugin: checking for updates from snapshots
 [INFO] ------------------------------------------------------------------------
 [ERROR] BUILD ERROR
 [INFO] ------------------------------------------------------------------------
 [INFO] The plugin 'org.apache.maven.plugins:maven-sonar-plugin' does not exist or no valid version could be found
 [INFO] ------------------------------------------------------------------------
 [INFO] Trace
 org.apache.maven.lifecycle.LifecycleExecutionException: The plugin 'org.apache.maven.plugins:maven-sonar-plugin' does not exist or no valid version could be found
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1569)
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.getMojoDescriptor(DefaultLifecycleExecutor.java:1851)
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.segmentTaskListByAggregationNeeds(DefaultLifecycleExecutor.java:462)
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:175)
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
     at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
     at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
     at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
     at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
 Caused by: org.apache.maven.plugin.version.PluginVersionNotFoundException: The plugin 'org.apache.maven.plugins:maven-sonar-plugin' does not exist or no valid version could be found
     at org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:229)
     at org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:91)
     at org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPluginManager.java:179)
     at org.apache.maven.plugin.DefaultPluginManager.loadPluginDescriptor(DefaultPluginManager.java:1642)
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1540)
     ... 15 more
 [INFO] ------------------------------------------------------------------------
 [INFO] Total time: 2 seconds
 [INFO] Finished at: Wed Dec 16 13:13:35 CET 2015
 [INFO] Final Memory: 7M/238M
 [INFO] ------------------------------------------------------------------------
 Sonar analysis completed: FAILURE
 Build step 'Sonar' changed build result to FAILURE
 Build step 'Sonar' marked build as failure
 Finished: FAILURE

为什么我会遇到这个错误?是Jenkins的Sonarqube插件的问题(bug)?
暂时避免这个错误我已经删除了Sonar post build步骤,并在maven 3.0.4的maven目标中添加了声纳分析步骤

 Maven goals :: clean install -Dmaven.test.skip=true -Dsonar.jdbc.url=jdbc:postgresql://sonardb.test.com:5555/sonar -Dsonar.host.url=http://localhost:9000/sonar org.codehaus.mojo:sonar-maven-plugin:2.6:sonar <br> 

但这是一个临时解决方案,我想在我的工作配置中使用Sonar post build步骤,而不是面对这个错误。
感谢您的帮助

2 个答案:

答案 0 :(得分:1)

SonarQube FAQ建议如下:

  

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

     

如果添加&#34; -U&#34;参数没有解决你的问题,你肯定遇到过Maven bug MNG-4001。唯一已知的解决方法是删除本地Maven存储库中的org \ codehaus \ mojo目录。当然,如果您的本地Maven存储库与Nexus等存储库管理器同步,则此操作也必须在存储库管理器端完成。

答案 1 :(得分:0)

问题只是因为你使用了错误的插件坐标:

'org.apache.maven.plugins:行家-声纳插件'

sonar-maven-plugin不是Apache Software Foundation的一部分。

你会在这里找到它:

http://www.mojohaus.org/sonar-maven-plugin/

如何在这里使用它:

http://www.mojohaus.org/sonar-maven-plugin/plugin-info.html