6

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

[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

これは何ですか?

4

6 に答える 6

7

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

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>2.4</version>
  </plugin>
于 2015-10-22T18:17:52.937 に答える
6

「なぜ?」に興味のある方へ。、さらに掘り下げましたが、起こっているように見えるのは次のとおりです。

この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-plugin 2.6 は sonar-runner 2.4 を使用します。これは、sonar-maven-plugin 2.7 が使用する 2.5 とは大きく異なります (sonar-runner の groupId のドメインが からorg.codehaus.sonar.runnerに変更されましたorg.sonarsource.sonar-runner)。そのため、v2 に固執することをお勧めします。 6 プラグインは、移行がスムーズになり、さらにいくつかのバージョンがリリースされるまで.

于 2015-10-26T19:35:18.137 に答える
5

SonarQube サーバーのバージョンが渡される方法maven-sonar-pluginは、 now を使用するため、v2.7 で変更されましたsonar-runner 2.5

4.3 未満の SonarQube インスタンスで使用すると、実際にバグがあり、チケットを開きました: https://jira.sonarsource.com/browse/MSONAR-131

SQ < 4.5 (現在のLTSsonar-maven-plugin ) は積極的にサポートされなくなり、 によって公開された新しいインターフェイスにより、他の方法で SQ と互換性がないという保証はないことに注意してくださいsonar-runner 2.5

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

于 2015-10-28T08:34:06.503 に答える
2

今日の仕事でも同じ問題がありました。maven とソナーのプラグインには自動的に最新バージョンを使用しています。最初は問題を見つけるのは簡単ではありませんでした。

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 に慣れていない場合は、Jenkins で修正する方法についての説明も見つけることができます。(私の説明は少し短かったです)

于 2015-10-26T15:56:47.693 に答える