Sonar MySQL设置

时间:2012-09-10 15:43:26

标签: mysql jdbc configuration properties sonarqube

我刚刚下载了Sonar 3.2并配置了sonar.properties文件以连接到我的本地MySql数据库。我启用了以下设置:

sonar.jdbc.url:   jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
sonar.jdbc.driverClassName:   com.mysql.jdbc.Driver

我能够在没有任何错误的情况下启动服务器并且能够登录Sonar界面但是当我在我的maven项目上运行'mvn sonar:sonar'时,我收到以下错误:

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project vrservices: Can not execute Sonar: Fail to connect to database: Cannot load JDBC driver class 'org.h2.Driver' -> [Help 1]

我已经阅读了一些论坛,他们说要将以下代码放在settings.xml文件中,但这仍然无法解决问题。

  <profile>
      <id>sonar</id>
      <activation>
          <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
          <!-- EXAMPLE FOR MYSQL -->
          <sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8</sonar.jdbc.url>
          <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
          <sonar.jdbc.username>root</sonar.jdbc.username>
          <sonar.jdbc.password></sonar.jdbc.password>
      </properties>
  </profile>

我想知道是否有人也遇到过这个问题,如果有的话你是怎么解决的?

提前致谢!

4 个答案:

答案 0 :(得分:7)

如果您没有配置Maven Sonar插件,它将尝试连接Sonar附带的嵌入式数据库的默认位置。从版本3.2开始,默认的嵌入式数据库是H2(替换derby)。

论坛建议是正确的,我怀疑你的Maven实例没有加载正确的设置文件。尝试按如下方式运行Maven:

mvn -s /path/to/settings/file/setting.xml sonar:sonar

答案 1 :(得分:6)

看到settings.xml和sonar.properties文件中的属性'sonar.jdbc.url'是相同的。 其次,在尝试运行声纳服务器之前,按名称'sonar'创建一个模式。 祝你好运

答案 2 :(得分:1)

也许您不小心将“个人资料”部分粘贴到settings.xml中的错误位置?请务必将其放在<profiles></profiles>标记之间。 (我的一位同事偶然发现了一个类似的问题)

答案 3 :(得分:0)

基于@Mark O&#39; Connor回答:检查文件settings.xml是否在正确的路径(/home/YOURUSER/.m2/或MAVEN_HOME环境变量),以及是否从正确的用户运行它 - 当我以root身份运行Sonar Maven Runner它无法设置settings.xml文件,因为我在用户的主文件夹中有它。