正在从Maven运行Sonar:未找到SQL驱动程序

正在从Maven运行Sonar:未找到SQL驱动程序,maven,sonarqube,Maven,Sonarqube,当我尝试启动mvn sonar:sonar时,我得到一个“未找到SQL驱动程序” sorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 位于org.picocontainer.lifecycle.reflectionLifecycle.invokeMethod(reflectionLifecycleTegy.java:110) ... 30多个 原因:java.sql.SQLException:找不到sql驱动程序o

当我尝试启动mvn sonar:sonar时,我得到一个“未找到SQL驱动程序”

sorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597)
位于org.picocontainer.lifecycle.reflectionLifecycle.invokeMethod(reflectionLifecycleTegy.java:110)
... 30多个
原因:java.sql.SQLException:找不到sql驱动程序org.h2.driver 位于org.sonar.api.database.DriverDatabaseConnector.getConnection(DriverDatabaseConnector.java:87)
位于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) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:190) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:306) 位于java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:627) 位于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>

声纳
真的
org.h2.Driver
jdbc:h2:tcp://localhost:9092/sonar  
http://localhost:9000

声纳不再使用德比。您应该安装较新版本的Sonar(如果可能的话,最新的3.5)并清理您的配置,主要是所有“Sonar.jdbc.*”属性。

您可能需要使用依赖项版本来匹配(Sonar?)H2数据库,但请尝试将以下依赖项添加到POM中:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.3.171</version>
    <scope>test</scope>
</dependency>

com.h2数据库
氢
1.3.171
测试

这将使该类可供Sonar插件在构建过程中使用,但不包括在工件中。

您的
Sonar.properties
是什么样子的?请查看您应该配置
settings.xml
文件,位于
$MAVEN_HOME/conf
~/.m2
您使用的是什么版本的声纳?你试过用mvn-X跑步吗?嘿,法布里斯,谢谢你的思考!问题在于版本3.5.1,一个干净的安装(我不知道为什么它仍然尝试使用Derby驱动程序,可能是一些父pom问题?)。但无论如何,如果我将设置更改为org.h2.Driver,问题仍然存在…谢谢。但仍然“由:java.lang.ClassNotFoundException:org.h2.Driver引起”。奇怪的是,当我运行独立的Sonar Runner时,它确实可以工作,所以H2本身就可以正常工作。