Sonar插件无法执行
引起:java.sql.SQLException:SQL 找不到驱动程序org.apache.derby.jdbc.ClientDriver at org.sonar.jpa.session.DriverDatabaseConnector.getConnection(DriverDatabaseConnector.java:91) 在 org.sonar.jpa.session.AbstractDatabaseConnector.testConnection(AbstractDatabaseConnector.java:185) ......还有42个引起:java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
当我使用-X开关运行声纳maven插件时,我可以在日志中看到以下行:
[DEBUG] To prevent a memory leak, the JDBC Driver [oracle.jdbc.OracleDriver] has been forcibly deregistered
我假设这导致声纳使用org.apache.derby.jdbc.ClientDriver
而不是oracle.jdbc.OracleDriver
,这应该根据我的配置。我已注释掉行以停用属性文件中的默认嵌入式derby DB。我的sonar.properties
有以下内容:
sonar.jdbc.url: jdbc:oracle:thin:@sagarmal05:1521:sonardb
sonar.jdbc.driverClassName: oracle.jdbc.driver.OracleDriver
sonar.jdbc.maxActive: 10
sonar.jdbc.maxIdle: 5
sonar.jdbc.minIdle: 2
sonar.jdbc.maxWait: 5000
sonar.jdbc.minEvictableIdleTimeMillis: 600000
sonar.jdbc.timeBetweenEvictionRunsMillis: 30000
sonar.jdbc.dialect=oracle
另外,我将maven的环境变量设置为MAVEN_OPTS=-Xmx700m -XX:MaxPermSize=420m
有趣的是,当我试图在其他机器上运行相同配置和相同DB的声纳执行时,它起作用了。唯一不同的是变量MAVEN_OPTS=-Xmx890m -XX:MaxPermSize=512m
。由于内存不足,我无法在机器上将其设置为890和512。如果我做maven在启动时失败喊叫:
VM初始化期间发生错误。无法预留足够的 对象堆的空间。无法创建Java虚拟机。
帮助让我了解确切的问题是什么受到高度赞赏。