2

状況


MySQLデータベース、jenkins、およびmavenを使用したビルド環境でソナーを実行しています。

問題


jenkinsジョブを実行すると、次のメッセージで中止されます。

[エラー]プロジェクトplayground_ebでゴールorg.codehaus.mojo:sonar-maven-plugin:2.0:sonar(default-cli)を実行できませんでした:Sonarを実行できません:データベースに接続できません:クラス'comのJDBCドライバーを作成できません接続URLの.mysql.jdbc.Driver'http://192.168.1.220:3306':適切なドライバーがありません

構成


サーバー


192.168.1.220(Debian 6.0.6):
  -Jenkins(@ポート8080)を実行します-Sonar
  (@ポート9000)
  -MySQLデータベース(@ポート3306)
192.168.1.221(Windows 7):
  -Mavenとビルド環境全体を実行します

構成

データベースは、sonar.propertiesファイルでローカルホストを使用して構成されました。Sonarとそのデータベースは、jenkinsWebインターフェイスを介してIPを使用して構成されました。これによりエラーが発生する可能性があると思いますが、sonar.propertiesファイルでIPを構成すると、sonarが起動しなくなります。

完全な例外スタック


    org.apache.maven.lifecycle.LifecycleExecutionException:プロジェクトplayground_ebで目標org.codehaus.mojo:sonar-maven-plugin:2.0:sonar(default-cli)を実行できませんでした:Sonarを実行できません
        org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)で
        org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)で
        org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)で
        org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)で
        org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)で
        org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)で
        org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)で
        org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)で
        org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)で
        org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)で
        org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)で
        org.apache.maven.cli.MavenCli.main(MavenCli.java:141)で
        sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)で
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)で
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)で
        java.lang.reflect.Method.invoke(Method.java:601)で
        org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)で
        org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)で
        org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)で
        org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)で
    原因:org.apache.maven.plugin.MojoExecutionException:Sonarを実行できません
        org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:118)で
        org.codehaus.mojo.sonar.Bootstraper.start(Bootstraper.java:65)で
        org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:90)で
        org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)で
        org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)で
        ...19もっと
    原因:java.lang.IllegalStateException:データベースへの接続に失敗しました
        org.sonar.core.persistence.DefaultDatabase.start(DefaultDatabase.java:74)で
        sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)で
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)で
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)で
        java.lang.reflect.Method.invoke(Method.java:601)で
        org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)で
        org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89)で
        org.picocontainer.injectors.AbstractInjectionFactory $ LifecycleAdapter.start(AbstractInjectionFactory.java:84)で
        org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)で
        org.picocontainer.behaviors.Stored $ RealComponentLifecycle.start(Stored.java:132)で
        org.picocontainer.behaviors.Stored.start(Stored.java:110)で
        org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1009)で
        org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1002)で
        org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:760)で
        org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:72)で
        org.sonar.batch.bootstrap.Module.start(Module.java:67)で
        org.sonar.batch.bootstrap.BootstrapModule.doStart(BootstrapModule.java:83)で
        org.sonar.batch.bootstrap.Module.start(Module.java:68)で
        org.sonar.batch.bootstrapper.Batch.startBatch(Batch.java:75)で
        org.sonar.batch.bootstrapper.Batch.execute(Batch.java:60)で
        org.sonar.maven3.SonarMojo.execute(SonarMojo.java:142)で
        org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:113)で
        ...23もっと
    原因:org.apache.commons.dbcp.SQLNestedException:接続URL「http://192.168.1.220:3306」のクラス「com.mysql.jdbc.Driver」のJDBCドライバーを作成できません
        org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)で
        org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)で
        org.apache.commons.dbcp.BasicDataSource.getLogWriter(BasicDataSource.java:1098)で
        org.apache.commons.dbcp.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:350)で
        org.sonar.core.persistence.DefaultDatabase.initDatasource(DefaultDatabase.java:131)で
        org.sonar.core.persistence.DefaultDatabase.start(DefaultDatabase.java:68)で
        ...44もっと
    原因:java.sql.SQLException:適切なドライバーがありません
        org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1443)で
        ...49もっと
4

1 に答える 1

4

問題が見つかりました。

Jenkinsでは、SonarデータベースのURLは次のように設定されていました

http://192.168.1.221:3306/sonar

これで、sonar.propertiesファイルと同じようにWHOLE JDBC-URL(jdbc:...を含む)に設定しました。これで機能します。

于 2013-01-11T13:26:06.400 に答える