1

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

sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)
at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)
... 30 更多
原因:java。 sql.SQLException:在 org.sonar.api.database.AbstractDatabaseConnector.testConnection(Abstr
actDatabaseConnector.java: 178)
... 36 更多
引起:java.lang.ClassNotFoundException: org.h2.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at 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 tabbaseConnector.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>
4

2 回答 2

1

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

于 2013-04-09T11:13:42.463 回答
1

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

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

这应该使 Sonar 插件可以在构建期间使用该类,但不将其包含在您的工件中。

于 2013-04-10T02:40:01.267 回答