当我尝试启动mvn sonar:sonar
时,我收到“未找到SQL驱动程序”
sorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597)
在org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)
... 30多了
引起:java.sql.SQLException:未找到SQL驱动程序org.h2.Driver at org.sonar.api.database.DriverDatabaseConnector.getConnection(DriverDatabaseConnector.java:87)
at org.sonar.api.database.AbstractDatabaseConnector.testConnection(Abstr actDatabaseConnector.java:178)
... 36更多
引起:java.lang.ClassNotFoundException:org.h2.Driver 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:627) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 在org.sonar.api.database.DriverDatabaseConnector.getConnection(DriverDa tabaseConnector.java:83)
......还有37个
有谁知道原因和/或解决方案是什么?
更新
Sonar.properties是默认值,因为是 Maven设置
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.driverClassName>org.h2.Driver</sonar.jdbc.driverClassName>
<sonar.jdbc.url>jdbc:h2:tcp://localhost:9092/sonar</sonar.jdbc.url>
<!-- optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://localhost:9000
</sonar.host.url>
</properties>
</profile>
答案 0 :(得分:1)
Sonar不再使用Derby了。您应该安装较新版本的Sonar(如果可能的话,最新的3.5)并清理您的配置,主要是所有“sonar.jdbc。*”属性。
答案 1 :(得分:1)
您可能必须使用依赖项版本来匹配您的(Sonar?)H2数据库,但尝试将以下依赖项添加到您的POM中:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.171</version>
<scope>test</scope>
</dependency>
这应该使Sonar插件可以在构建期间使用该类,但不能将其包含在工件中。