[英]SonarQube analysis from maven and Jenkins have different results
[英]Can not execute SonarQube analysis from Jenkins
我正在尝试从Jenkins配置Sonarqube分析(使用Maven)。 我安装了Sonarqube 3.7。 我配置了声纳jenkins插件,效果很好。 我有Maven 3.0.3并且正在使用声纳maven插件2.1。
问题是 - 它试图执行目标,但要求org.codehaus.sonar:sonar-maven3-plugin:jar:3.7。 我无法在任何地方找到这个罐子。 在存储库中,我只能看到pom而不是jar
Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.1:sonar (default-cli) on project twister: Can not execute SonarQube analysis
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
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.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Can not execute SonarQube analysis
at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:109)
at org.codehaus.mojo.sonar.Bootstraper.start(Bootstraper.java:67)
at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:109)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: org.apache.maven.plugin.PluginResolutionException: Plugin org.codehaus.sonar:sonar-maven3-plugin:3.7 or one of its dependencies could not be resolved: Failure to find org.codehaus.sonar:sonar-maven3-plugin:jar:3.7 in the local repository
不要混淆。 涉及2个不同的插件。
第一个是我们命名为“Codehaus Sonar Mojo”。 当你做mvn sonar:sonar
时,这是你打电话的那个mvn sonar:sonar
。 这个插件的GAV是: org.codehaus.mojo:sonar-maven-plugin
我们最近发布了2.1版来支持Maven 3.1。 这个插件没有频繁发布,因为我们试图避免与SonarQube版本的任何耦合。 当你调用这个插件时,它只会做一些基本的检查,向SonarQube服务器询问它的版本,然后引导 “SonarQube Maven插件”。
“SonarQube Maven插件”是为SonarQube服务器的每个版本发布的插件。 这个插件的GAV是: org.codehaus.sonar:sonar-maven[3]-plugin
。 在过去,我们曾经需要2个不同的插件(一个用于Maven 2,一个用于Maven 3)。 根据Maven版本,“Codehaus Sonar Mojo”的工作是引导正确的一个。 从SonarQube服务器3.7开始,只有一个插件: org.codehaus.sonar:sonar-maven-plugin
。 为了不破坏与“Codehaus Sonar Mojo”的兼容性,当您使用Maven 3+时,仍然需要引导org.codehaus.sonar:sonar-maven3-plugin
,然后我们在旧位置添加了一个重定位pom。
总而言之,当您使用Maven 3+和SonarQube服务器3.7开始SonarQube分析时,这是预期的结果:
mvn sonar:sonar
org.codehaus.mojo:sonar-maven-plugin:2.1
org.codehaus.sonar:sonar-maven3-plugin:3.7
org.codehaus.sonar:sonar-maven3-plugin:3.7
pom org.codehaus.sonar:sonar-maven3-plugin:3.7
并看到有一个重定位到org.codehaus.sonar:sonar-maven-plugin:3.7
org.codehaus.sonar:sonar-maven-plugin:3.7
在介绍之后,回到您的问题。 消息显示“Codehaus Sonar Mojo”无法下载org.codehaus.sonar:sonar-maven3-plugin:3.7
。 首先,您应该尝试Marc建议,并尝试更新您的Maven版本,以防有重新定位支持的错误(我在Maven发行说明中没有看到这一点)。 然后你应该检查你的Maven配置(你使用的是存储库管理器吗?)。
最后,如果您仍有问题,请从干净的Maven存储库(备份/删除〜/ .m2 /存储库)开始,然后运行mvn sonar:sonar -X
并使用完整日志完成您的问题。
我已经查看了sonar-maven3-plugin
pom文件,看起来它已被重新定位到sonar-maven-plugin
http://repo1.maven.org/maven2/org/codehaus/sonar/sonar-maven3-plugin/3.7/sonar-maven3-plugin-3.7.pom
pom说
Since Sonar 3.7 there is no more difference between Maven 2 and Maven 3 so relocate to Maven 2 plugin to avoid duplication
所以我猜你可以使用sonar-maven-plugin而不是sonar-maven3-plugin。
我有同样的问题。 我正在使用mvn sonar:sonar
,从声纳3.1升级到3.7失败后出现完全相同的错误信息。
事实证明我使用的是旧版本的Maven(3.0.1),我猜这个版本没有正确处理插件的重定位。 升级到Maven 3.0.5为我解决了这个问题 。
不确定我的诊断是否正确,但它看起来像:
对我来说它有助于删除~/.m2/repository/org/codehouse/mojo/sonar-maven-plugin
和~/.m2/repository/org/codehouse/...
与声纳的其他东西(我不记得确切)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.