【发布时间】:2016-03-14 22:27:07
【问题描述】:
我们是 Sonar 的新手,刚刚下载了 v2.13.1 并开始使用我们的项目。在它开始缓慢运行之前感觉很棒,我意识到这是因为我们仍在使用附带的德比。我们在同一个机器上运行 MySQL Server 5.1(连同 TeamCity CI),所以我按照步骤设置 MySQL。
- 我运行
extras\database\mysql\create_database.sql来创建声纳用户并分配权限。 -
我更新了
conf\sonar.properties以包括:sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver sonar.jdbc.validationQuery: select 1 我重新启动了 Sonar 服务器,从日志中看到数据库表已创建,我可以通过浏览数据库独立确认。
-
当我启动服务器时,我在日志中得到以下信息:
2012.02.07 13:50:58 INFO o.s.c.p.Database Create JDBC datasource 2012.02.07 13:51:01 INFO org.sonar.INFO Initializing Hibernate 2012.02.07 13:51:11 INFO org.sonar.INFO Start services... -
当我运行执行“
mvn clean install”后跟“mvn sonar:sonar”目标的 TeamCity 配置时,之前在 Derby 下工作,我们的构建成功完成,但 Sonar 终止并显示以下信息:[14:11:24] [west-chai:my-project] [INFO] --- sonar-maven-plugin:2.0:sonar (default-cli) @ my-project --- [14:11:26] [west-chai:my-project] [INFO] Sonar version: 2.13.1 [14:11:29] [west-chai:my-project] [WARN] [14:11:29.403] Derby database should be used for evaluation purpose only [14:11:29] [west-chai:my-project] [INFO] [14:11:29.403] Create JDBC datasource [14:11:30] [west-chai:my-project] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar [14:11:30] [INFO] ------------------------------------------------------------------------ [14:11:30] [INFO] Reactor Summary: [14:11:30] [INFO] [14:11:24] [west-chai:my-project] [INFO] --- sonar-maven-plugin:2.0:sonar (default-cli) @ my-project --- [14:11:26] [west-chai:my-project] [INFO] Sonar version: 2.13.1 [14:11:29] [west-chai:my-project] [WARN] [14:11:29.403] Derby database should be used for evaluation purpose only [14:11:29] [west-chai:my-project] [INFO] [14:11:29.403] Create JDBC datasource [14:11:30] [west-chai:my-project] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar [14:11:30] [INFO] ------------------------------------------------------------------------ [14:11:30] [INFO] Reactor Summary: [14:11:30] [INFO] [14:11:30] [INFO] PROJECT COMPONENT 1 ................... FAILURE [34.679s] [14:11:30] [INFO] PROJECT COMPONENT 2 ................... SKIPPED ... [14:11:30] [INFO] PROJECT COMPONENT N ................... SKIPPED [14:11:30] [INFO] ------------------------------------------------------------------------ [14:11:30] [INFO] BUILD FAILURE [14:11:30] [INFO] ------------------------------------------------------------------------ [14:11:30] [INFO] Total time: 41.809s [14:11:30] [INFO] Finished at: Tue Feb 07 14:11:30 CST 2012 [14:11:31] [INFO] Final Memory: 31M/92M [14:11:31] [INFO] ------------------------------------------------------------------------ [14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance 'org.sonar.batch.bootstrap.BatchDatabase@1d4d6a, java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1] [14:11:31] [ERROR] [14:11:31] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [14:11:31] [ERROR] Re-run Maven using the -X switch to enable full debug logging. [14:11:31] [ERROR] [14:11:31] [ERROR] For more information about the errors and possible solutions, please read the following articles: [14:11:31] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [14:11:31] Process exited with code 1 [14:11:31] [Publishing artifacts] Paths to publish: [E:\apps\TeamCity\server\buildAgent\temp\buildTmp\.tc-maven-bi\maven-build-info.1.xml.gz => .teamcity] [14:11:31] [Publishing artifacts] Sending files [14:11:31] Step Sonar (Maven) failed [14:11:31] Waiting for 38 service processes to complete [14:11:31] Sending build.finish.properties.gz file [14:11:31] Paths to publish: [MyProject\Mainline\MyApp\target\chai.war, MyProject\Mainline\MyComponent\MyComponent-service\target\MyComponent.war] [14:11:31] Sending files [14:11:35] Build finished [14:11:30] [INFO] ------------------------------------------------------------------------ [14:11:30] [INFO] BUILD FAILURE [14:11:30] [INFO] ------------------------------------------------------------------------ [14:11:30] [INFO] Total time: 41.809s [14:11:30] [INFO] Finished at: Tue Feb 07 14:11:30 CST 2012 [14:11:31] [INFO] Final Memory: 31M/92M [14:11:31] [INFO] ------------------------------------------------------------------------ [14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance 'org.sonar.batch.bootstrap.BatchDatabase@1d4d6a, java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1] [14:11:31] [ERROR] [14:11:31] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [14:11:31] [ERROR] Re-run Maven using the -X switch to enable full debug logging. [14:11:31] [ERROR] [14:11:31] [ERROR] For more information about the errors and possible solutions, please read the following articles: [14:11:31] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [14:11:31] Process exited with code 1 [14:11:31] [Publishing artifacts] Paths to publish: [E:\apps\TeamCity\server\buildAgent\temp\buildTmp\.tc-maven-bi\maven-build-info.1.xml.gz => .teamcity] [14:11:31] [Publishing artifacts] Sending files [14:11:31] Step Sonar (Maven) failed [14:11:31] Waiting for 38 service processes to complete [14:11:31] Sending build.finish.properties.gz file [14:11:31] Paths to publish: [MyProject\Mainline\MyApp\target\chai.war, MyProject\Mainline\MyComponent\MyComponent-service\target\MyComponent.war] [14:11:31] Sending files [14:11:35] Build finished
后面的错误行提到端口 1527,被注释掉的 Derby 配置行引用。
[14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance 'org.sonar.batch.bootstrap.BatchDatabase@1d4d6a, java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1]
如果我注释掉上面的sonar.jdbc 行并恢复以下行,那么我们的“mvn clean install”和“mvn sonar:sonar”都成功完成。
sonar.jdbc.url: jdbc:derby://localhost:152/sonar;create=true
sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver
sonar.jdbc.validationQuery: values(1)
Maven 目标的配置是否与 Sonar 服务器直接使用的配置不同?是否有明确的方法来判断正在连接的 JDBC 数据源?
【问题讨论】: