Sonar, Maven, Jenkins, MySQL - Невозможно создать драйвер JDBC класса 'com.mysql.jdbc.Driver'

ситуация


Мы запускаем сонар с базой данных MySQL, jenkins и средой сборки с maven.

проблема


При выполнении задания jenkins он прерывается сообщением:

[ERROR] Не удалось выполнить цель   org.codehaus.mojo: sonar-maven-plugin: 2.0: sonar (default-cli) on   project playground_eb: Не удается выполнить Sonar: не удается подключиться к   база данных: не удается создать JDBC-драйвер класса 'com.mysql.jdbc.Driver'   для подключения URL 'http://192.168.1.220:3306': Нет подходящего драйвера

конфигурация


Серверы


192.168.1.220 (Debian 6.0.6):
  - runs Jenkins (@ port 8080)
  - Sonar (@ port 9000)
  - MySQL Database (@ port 3306)
192.168.1.221 (Windows 7):
  - runs Maven and the whole build environment

конфигурацияs

База данных была настроена в файле sonar.properties - с localhost. Sonar и его база данных были настроены через веб-интерфейс jenkins - с IP. Я предполагаю, что это может привести к ошибкам, но настройка IP-адреса в файле sonar.properties заставляет сонар даже не запускаться.

Полный стек исключений


    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project playground_eb: Can not execute Sonar
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Can not execute Sonar
        at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:118)
        at org.codehaus.mojo.sonar.Bootstraper.start(Bootstraper.java:65)
        at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:90)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        ... 19 more
    Caused by: java.lang.IllegalStateException: Fail to connect to database
        at org.sonar.core.persistence.DefaultDatabase.start(DefaultDatabase.java:74)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)
        at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89)
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
        at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
        at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
        at org.picocontainer.behaviors.Stored.start(Stored.java:110)
        at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1009)
        at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1002)
        at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:760)
        at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:72)
        at org.sonar.batch.bootstrap.Module.start(Module.java:67)
        at org.sonar.batch.bootstrap.BootstrapModule.doStart(BootstrapModule.java:83)
        at org.sonar.batch.bootstrap.Module.start(Module.java:68)
        at org.sonar.batch.bootstrapper.Batch.startBatch(Batch.java:75)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:60)
        at org.sonar.maven3.SonarMojo.execute(SonarMojo.java:142)
        at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:113)
        ... 23 more
    Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.mysql.jdbc.Driver' for connect URL 'http://192.168.1.220:3306'
        at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
        at org.apache.commons.dbcp.BasicDataSource.getLogWriter(BasicDataSource.java:1098)
        at org.apache.commons.dbcp.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:350)
        at org.sonar.core.persistence.DefaultDatabase.initDatasource(DefaultDatabase.java:131)
        at org.sonar.core.persistence.DefaultDatabase.start(DefaultDatabase.java:68)
        ... 44 more
    Caused by: java.sql.SQLException: No suitable driver
        at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1443)
        ... 49 more
2
nl ja de
Попробуйте добавить драйвер MySQL в качестве зависимости от сонар-maven-плагина. НТН.
добавлено автор Slava Semushin, источник
В pom.xml в разделе попробуйте выполнить следующее: gist.github.com/4500818
добавлено автор Slava Semushin, источник
Как/где я могу это сделать?
добавлено автор Bernhard Hagmann, источник
Я добавил ... и все равно получаю то же сообщение об ошибке.
добавлено автор Bernhard Hagmann, источник

1 ответы

Просто нашел проблему.

В Jenkins URL-адрес базы данных Sonar был установлен на

http://192.168.1.221:3306/sonar

Теперь я установил его в WHOLE JDBC-URL (включая jdbc: ...), как в файле sonar.properties ... и теперь это работает.

4
добавлено
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

Debian | Centos | Флуд
Debian | Centos | Флуд
477 участник(ов)