错误无法在组件上保存度量标准pdf-data的度量:Sonar Exception?

时间:2014-07-10 11:53:12

标签: mysql linux maven sonarqube

我有一个Jenkins Job在一个Maven项目上运行SonarRunner,该项目由几个模块组成,我使用msql db for sonar。构建失败,显示

[错误]无法在组件[com.XX:xxx-parent]上保存度量[pdf-data]的度量

[错误]无法执行目标org.codehaus.mojo:sonar-maven-plugin:2.3.1:项目XXX-parent上的声纳(default-cli):无法保存指标[pdf-data]的度量组件[com.XX:XXX-parent]: [错误] ###更新数据库时出错。原因:com.mysql.jdbc.PacketTooBigException:查询的数据包太大(3676748> 1048576)。您可以通过设置max_allowed_pa​​cket'来更改服务器上的此值。变量。 [错误] ###错误可能涉及org.sonar.api.database.model.MeasureMapper.insertData-Inline [ERROR] ###设置参数时发生错误 [错误] ### SQL:INSERT INTO measure_data(measure_id,snapshot_id,data)VALUES(?,?,?) [错误] ###原因:com.mysql.jdbc.PacketTooBigException:查询包太大(3676748> 1048576)。您可以通过设置max_allowed_pa​​cket'来更改服务器上的此值。变量。 [错误] - > [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:无法执行目标org.codehaus.mojo:sonar-maven-plugin:2.3.1:项目XXX-parent上的sonar(default-cli):无法保存度量标准[pdf组件[com.XXX:XXX-parent]上的-data]     在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)     在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)     在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)     在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)     在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)     在org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)     在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)     在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)     在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)     在org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)     在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)     在org.apache.maven.cli.MavenCli.main(MavenCli.java:141)

1 个答案:

答案 0 :(得分:1)

我也遇到了这个错误。 SonarQube使用的MySQL数据库默认情况下允许LOB内容高达1 MB,并且它尝试保存的内容大于错误消息中所述的内容。

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3676748 > 1048576).

解决方案是您需要增加SonarQube正在使用的MySQL实例的max_allowed_packet设置。

You can change this value on the server by setting the max_allowed_packet' variable.

可以找到说明here

使用所需的设置启动服务器,即mysqld --max_allowed_packet=16M最多16 MB

或者更永久地,通过添加[mysqld]部分下的设置来修改配置文件(Linux系统上的my.cnf,可能是Windows上的my.ini)。

[mysqld]
max_allowed_packet=16M