web-dev-qa-db-ja.com

sonar mavenプラグインビルドエラー、SonarQubeバージョン:null

私のジェンキンスビルドはこのメッセージで失敗し始めました:

[INFO] --- sonar-maven-plugin:2.7:sonar (default-cli) @ cividas-core-web ---
[INFO] artifact com.ontimize:ontimize-core: checking for updates from central
[INFO] artifact com.ontimize:ontimize-core: checking for updates from imatia-local
[INFO] artifact com.ontimize:ontimize-core: checking for updates from snapshots
[INFO] User cache: /var/lib/jenkins/.sonar/cache
[INFO] SonarQube version: null
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.773s
[INFO] Finished at: Thu Oct 22 19:49:04 CEST 2015
[INFO] Final Memory: 13M/193M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7:sonar (default-cli) on project cividas-core-web: null: MojoExecutionException: NullPointerException -> [Help 1]
org.Apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7:sonar (default-cli) on project cividas-core-web: null
    at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:216)
    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:317)
    at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:152)
    at org.Apache.maven.cli.MavenCli.execute(MavenCli.Java:555)
    at org.Apache.maven.cli.MavenCli.doMain(MavenCli.Java:214)
    at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:158)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:606)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.Java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.Java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.Java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:356)
Caused by: org.Apache.maven.plugin.MojoExecutionException
    at org.codehaus.mojo.sonar.bootstrap.ExceptionHandling.handle(ExceptionHandling.Java:41)
    at org.codehaus.mojo.sonar.bootstrap.RunnerBootstrapper.execute(RunnerBootstrapper.Java:107)
    at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.Java:141)
    at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:106)
    at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:208)
    ... 19 more
Caused by: Java.lang.NullPointerException
    at org.Apache.maven.artifact.versioning.ComparableVersion.parseVersion(ComparableVersion.Java:354)
    at org.Apache.maven.artifact.versioning.ComparableVersion.<init>(ComparableVersion.Java:345)
    at org.Apache.maven.artifact.versioning.DefaultArtifactVersion.parseVersion(DefaultArtifactVersion.Java:110)
    at org.Apache.maven.artifact.versioning.DefaultArtifactVersion.<init>(DefaultArtifactVersion.Java:46)
    at org.codehaus.mojo.sonar.bootstrap.RunnerBootstrapper.isVersionPriorTo5Dot2(RunnerBootstrapper.Java:192)
    at org.codehaus.mojo.sonar.bootstrap.RunnerBootstrapper.execute(RunnerBootstrapper.Java:84)
    ... 22 more
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoExecutionException
Sonar analysis completed: FAILURE

これはどういうことですか?

6
NotGaeL

「なぜ?」に興味がある人のために、私はもう少し掘り下げました、そして何が起こっているように思われるかはこれです:

このsq-version.txtファイルは org.codehaus.sonar:sonar-plugin-api にありますが、この依存関係は sonar-maven-plugin)には含まれていません(一時的であっても) 。ソナーに関して参照しているのは org.sonarsource.sonar-runner:sonar-runner-api だけです。

彼らは バージョンtxtファイルの場所と名前を変更しました のようですが、すべてのコードを更新したわけではありません。 sq-version.txtとコンテンツ5.2(改行なし)をプラグインクラスパスに手動で追加する(おそらくプラグインjarを更新する)か、sonar-plugin-apiへの依存関係を追加することで解決できるかもしれませんが、これらはハックです。

Sonar-maven-plugin2.6はsonar-runner2.4を使用します。これは、sonar-maven-plugin 2.7が使用する2.5とは大きく異なります(sonar-runnerのgroupIdには変更されたドメインorg.codehaus.sonar.runnerからorg.sonarsource.sonar-runner)まで。したがって、移行がスムーズになり、さらにいくつかのバージョンがリリースされるまで、v2.6プラグインを使用することをお勧めします。

6
Kenney

私のpom.xmlのプラグインセクションにこのコードを追加することにより、自動的に選択された最新(2.7)バージョンを古いバージョン(2.4)にダウングレードすることで解決しました

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>2.4</version>
  </plugin>
7
NotGaeL

SonarQubeサーバーのバージョンがmaven-sonar-pluginに渡される方法は、現在sonar-runner 2.5を使用しているため、他のものとともにv2.7で変更されました。

チケットを開いたSonarQubeインスタンス<4.3で使用すると、確かにバグがあります: https://jira.sonarsource.com/browse/MSONAR-131

SQ <4.5(現在の [〜#〜] lts [〜#〜] )はアクティブにサポートされなくなり、sonar-maven-pluginがそれらと互換性がないという保証はないことに注意してください。 sonar-runner 2.5によって公開された新しいインターフェースによる他の方法。

これらの場合、すでに提案されているように、mavenプラグインのバージョンを2.6にロックするのがおそらく最善です。

5
Duarte Meneses

今日も同じ問題が発生しました。MavenプラグインとSonarプラグインには最新バージョンが自動的に使用されます。最初は問題を見つけるのは簡単ではありませんでした。

Elcodedocleが与えた答えは正しいですが、自動化された方法でMavenとソナーを使用する人のためにこれも解決策であることを追加したいと思います。

org.codehaus.mojo:sonar-maven-plugin:2.6:sonar

このようにして、古いバージョン2.6で実行され、動作することを確認できます。

2.7にはおそらくバグがあり、すぐに修正されることを願っています。これは私たちのエラーでした:

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven plugin:2.7:sonar (default-cli) on project (projectName): Unable to determine structure of project. Probably you use Maven Advanced Reactor Options with a broken tree of modules. "(projectName)" is Orphan -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoExecutionException

編集:詳細については、この投稿をご覧ください: Jenkins Sonarプラグインが突然機能しなくなります

ここでは、プラグインの新しいバージョン2.7がJava 6プロジェクトと互換性がなくなったことを説明します。慣れていない場合は、Jenkinsで修正する方法についての説明もあります。 (私の説明は少し短かったです)

2
nick wouters

これはヒントです:

[INFO] SonarQube version: null

コードの後半で、Mavenはこのバージョン番号を解析しようとして失敗します。ソースコードは次のとおりです: https://github.com/mojohaus/sonar-maven-plugin/blob/master/src/main/Java/org/codehaus/mojo/sonar/bootstrap/RunnerBootstrapper.Java

SonarQubeランナーのソース から、これはプロパティインスタンスによってサポートされています。したがって、コードがサーバーにアクセスできなかったか、サーバーがこのデータを送り返していなかった可能性があります。わかりにくい。

私が見ることができるのは、コードが2.5で変更されたことです。それがおそらく2.4がまだ機能する理由です。バージョンを特定する方法については、こちらをご覧ください: Jenkins Sonarプラグインが突然機能しなくなる

0
Aaron Digulla

ソナーのインストールを実行するのに適したプラグインのバージョンを見つけてください。

例えば。 mvn org.codehaus.mojo:sonar-maven-plugin:2.6:sonar

このプラグインバージョンは、最新のソナーリリースに対しては機能しませんが、4.1.2に対しては正常に機能します。

0
99Sono