6

Jenkins (Maven を使用) から Sonarqube 分析を構成しようとしています。Sonarqube 3.7 をインストールしました。sonar jenkins プラグインを構成しましたが、うまく機能します。Maven 3.0.3 があり、ソナー maven プラグイン 2.1 を使用しています。

問題は、ゴールを実行しようとするが、org.codehaus.sonar:sonar-maven3-plugin:jar:3.7 を要求することです。この瓶はどこにも見つかりません。リポジトリでも、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
4

4 に答える 4

10

混乱しないでください。2 つの異なるプラグインが関係しています。

1 つ目は、「Codehaus Sonar Mojo」と名付けたものです。これは、あなたがそうするときにあなたが呼び出すものですmvn sonar:sonar。このプラグインの GAV は次のとおりorg.codehaus.mojo:sonar-maven-plugin です。 Maven 3.1 をサポートするために、最近バージョン 2.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 以降では、プラグインは 1 つだけです: org.codehaus.sonar:sonar-maven-plugin. Maven 3+ を使用している場合でもブートストラップが必要な「Codehaus Sonar Mojo」との互換性を壊さないようにするためorg.codehaus.sonar:sonar-maven3-pluginに、古い場所に再配置 pom を追加しました。

要約すると、Maven 3+ および SonarQube サーバー 3.7 で SonarQube 分析を開始したときに期待されることは次のとおりです。

  1. mvn sonar:sonar
  2. Maven は最新の「Codehaus Sonar Mojo」をダウンロードして使用します。org.codehaus.mojo:sonar-maven-plugin:2.1
  3. 「Codehaus Sonar Mojo」は、SonarQube サーバーのバージョンとブートストラップを照会しますorg.codehaus.sonar:sonar-maven3-plugin:3.7
  4. Maven は pom をダウンロードorg.codehaus.sonar:sonar-maven3-plugin:3.7し、への再配置があることを確認します。org.codehaus.sonar:sonar-maven-plugin:3.7
  5. Maven がダウンロードして使用します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/repository) から始めてから実行mvn sonar:sonar -Xし、完全なログで質問を完了してください。

于 2013-09-11T07:34:21.477 に答える
1

私も同じ問題を抱えていました。を使用しmvn sonar:sonarていましたが、Sonar 3.1 から 3.7 へのアップグレードがまったく同じエラー メッセージで失敗しました。

古いバージョンの Maven (3.0.1) を使用していたことが判明しました。これは、このプラグインの再配置を正しく処理していなかったと思います。Maven 3.0.5 にアップグレードすると、問題が解決しました。

于 2013-09-10T12:30:55.830 に答える
1

pom ファイルを調べたところ、次の場所sonar-maven3-pluginに移動されたようですsonar-maven-plugin

http://repo1.maven.org/maven2/org/codehaus/sonar/sonar-maven3-plugin/3.7/sonar-maven3-plugin-3.7.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-maven3-plugin の代わりに sonar-maven-plugin を使用できると思います。

于 2013-09-10T11:25:58.363 に答える