我遇到了与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步骤,而不是面对这个错误。
感谢您的帮助
答案 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/
如何在这里使用它: