0

Jenkins サーバーに追加したプロジェクトがあります。プロジェクトには、親と子の maven pom ファイルが含まれています。親と子の両方の pom ファイルにビルドを追加したところ、しばらくの間はすべて正常に機能しましたが、子ビルドが機能しなくなりました。

子供がソナー分析に到達するたびに、次のような例外が発生します。

Caused by: javax.persistence.NonUniqueResultException: Expected single result, but got : [Snapshot[resourceId=1148,createdAt=2011-04-29 23:08:23.0,version=01.01.01.1054-SNAPSHOT,last=true,status=P,scope=PRJ,path=,depth=0,qualifier=TRK,rootId=<null>,parentId=<null>,rootProjectId=1148,period1Mode=previous_analysis,period2Mode=days,period3Mode=days,period4Mode=<null>,period5Mode=<null>,period1Param=2011-04-19,period2Param=5,period3Param=30,period4Param=<null>,period5Param=<null>,period1Date=2011-04-19 05:06:16.0,period2Date=2011-04-24 23:08:23.0,period3Date=2011-03-30 23:08:23.0,period4Date=<null>,period5Date=<null>,id=486870], Snapshot[resourceId=1148,createdAt=2011-05-04 09:52:04.0,version=01.01.01.1054-SNAPSHOT,last=true,status=P,scope=PRJ,path=495746.,depth=1,qualifier=BRC,rootId=495746,parentId=495746,rootProjectId=1149,period1Mode=previous_analysis,period2Mode=days,period3Mode=days,period4Mode=<null>,period5Mode=<null>,period1Param=2011-04-29,period2Param=5,period3Param=30,period4Param=<null>,period5Param=<null>,period1Date=2011-04-29 23:08:23.0,period2Date=2011-04-29 09:52:04.0,period3Date=2011-04-04 09:52:04.0,period4Date=<null>,period5Date=<null>,id=495748]]

プロジェクトを削除して再作成しようとしましたが、役に立ちませんでした。解決策はありますか?

4

1 に答える 1

1

これは Sonar バージョン < 2.8 のバグです。ここでバグレポートを見ることができます: Sonar-2329。基本的に、親ビルドと子ビルドがソナーによって同時に分析されると、問題が発生します。それを解決するには、次の 2 つのことを行う必要があります。

1) Jenkins から親ビルドまたは子ビルドを削除します。Jenkins でビルドするプロジェクトは 1 つだけにする必要があります。

2) 並行分析によって引き起こされたデータベースの破損をクリーンアップする必要があります。これを行うには、ソナー データベースで次の SQL コマンドを実行します。

update snapshots old_snap, snapshots new_snap set old_snap.islast=0 where old_snap.islast=1 and new_snap.created_at > old_snap.created_at and new_snap.project_id = old_snap.project_id and new_snap.islast=1

詳細については、バグ レポートと、他の SQL ダイアレクトの SQL コマンドを参照してください。上記のクエリは MySQL で機能します。

于 2012-06-19T06:02:19.483 に答える