要求是 mvn clean install sonar:sonar
将快照从 Machine Maven 部署/安装到 Machine SonarQube,后者会将其存储在具有 MySql 数据库的 Machine MySql 中。
Machine MySql 仅对 Machine SonarQube 可见。 Machine SonarQube 对 Intranet 可见,Intranet 中的每个人都可以访问它。
从 Machine Maven 运行 mvn clean install sonar:sonar
时,出现以下错误:
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project my-project: Fail to connect to database: Cannot load JDBC driver class 'org.h2.Driver' -> [Help 1]
Machine Maven 在 ~/.m2/settings.xml 中具有以下配置文件:
<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.host.url>https://sonarqube.myproject.com</sonar.host.url> </properties> </profile>
sonar-maven-plugin 已根据 here 中的文档添加.
此外,sonar-maven-plugin 已作为依赖项添加到 pom.xml 中:
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.5</version>
</dependency>
我知道 documentation要求在 maven 设置声纳配置文件属性中指定 jdbc 驱动程序、url、用户名和密码,我不想向其他人公开,因此已在 Machine SonarQube conf/sonar.properties 中指定
有没有办法通过 Machine SonarQube 从 Machine Maven 运行“mvn clean install sonar:sonar”将这些快照部署/安装到 Machine MySql?
提前致谢。
最佳答案
在这篇文章中 Sonar fails to connect to mySQL always tries jdbc:h2:tcp://localhost/sonar ,看来您的属性未完成。
尝试将以下属性添加到您的 Maven 设置文件 ~/.m2/settings.xml 中的“声纳配置文件”:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>
<sonar.jdbc.username>user_of_the_sonar_database</sonar.jdbc.username>
<sonar.jdbc.password>password_of_the_userdatabase</sonar.jdbc.password>
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
注意:您的 <sonar.jdbc.url></sonar.jdbc.url>
取决于您使用的数据库。
关于java - 当指定了 MySql 时,SonarQube 尝试使用 'org.h2.Driver',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390395/