2016-11-06 25 views
1

タスクをjooq pluginから実行すると、メッセージjava.lang.ClassNotFoundException: com.mysql.jdbc.DriverClassNotFoundExceptionが表示されます。mysqlコネクタを使用しているときにbuildscriptでClassNotFoundExceptionが発生する

C:\Users\Thomas\Projects\cloudpass-api-java>gradle generateTestDatabaseJooqSchemaSource 
Starting a Gradle Daemon (subsequent builds will be faster) 
:generateTestDatabaseJooqSchemaSource 
nov. 06, 2016 7:54:15 AM org.jooq.tools.JooqLogger info 
INFO: Initialising properties : C:\Users\Thomas\Projects\cloudpass-api-java\build\tmp\jooq\config.xml 
nov. 06, 2016 7:54:16 AM org.jooq.tools.JooqLogger error 
SEVERE: Cannot read C:\Users\Thomas\Projects\cloudpass-api-java\build\tmp\jooq\config.xml. Error : com.mysql.jdbc.Driver 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     at org.jooq.util.GenerationTool.loadClass(GenerationTool.java:591) 
     at org.jooq.util.GenerationTool.run(GenerationTool.java:248) 
     at org.jooq.util.GenerationTool.generate(GenerationTool.java:198) 
     at org.jooq.util.GenerationTool.main(GenerationTool.java:170) 

:generateTestDatabaseJooqSchemaSource FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':generateTestDatabaseJooqSchemaSource'. 
> Process 'command 'C:\Program Files\Java\jdk1.8.0_101\bin\java.exe'' finished with non-zero exit value -1 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 7.831 secs 

:これは次のようになり、なぜ私はライン上buildscriptの依存関係でmysql:mysql-connector-java:6.0.5を含むので、私は、タスクを実行するときにこれは、私が取得フル出力である7

buildscript { 
    repositories { 
     jcenter() 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'mysql:mysql-connector-java:6.0.5' 
     classpath 'nu.studer:gradle-jooq-plugin:2.0.0' 
    } 
} 

plugins { 
    id 'nu.studer.jooq' version '2.0.0' 
    id 'org.flywaydb.flyway' version '4.0.3' 
} 

apply plugin: 'java' 
apply plugin: 'idea' 

// database connection information 
def database_name = 'cloudpass-api' 
def database_url = 'jdbc:mysql://localhost:3306/cloudpass-api' 
def database_user = 'root' 
def database_pass = 'password' 

jooq { 
    testDatabase(sourceSets.main) { 
     jdbc { 
      driver = 'com.mysql.jdbc.Driver' 
      url = database_url 
      user = database_user 
      password = database_pass 
      schema = database_name 
     } 
     generator { 
      name = 'org.jooq.util.JavaGenerator' 
      database { 
       name = 'org.jooq.util.mysql.MySQLDatabase' 
       inputSchema = database_name 
      } 
      generate { 
       relations = true 
       deprecated = false 
       records = true 
       immutablePojos = true 
       fluentSetters = true 
      } 
      target { 
       packageName = 'cloudpass.database' 
      } 
     } 
    } 
} 

flyway { 
    url = database_url 
    user = database_user 
    password = database_pass 
} 

repositories { 
    jcenter() 
    mavenCentral() 
} 

dependencies { 
    compile 'org.slf4j:slf4j-api:1.7.21' 
    compile 'mysql:mysql-connector-java:6.0.5' 
    compile 'org.jooq:jooq' 
    compile 'com.maxmind.geoip2:geoip2:2.8.0' 
    testCompile 'junit:junit:4.12' 
} 

、知りません私はまだgradleに心地よいわけではないので、これはノブの質問かもしれないので、私はあなたが与えることができるどんな助けにも感謝します。

+0

私はプラグインを適用 '使用@Henry:「nu.studer.jooq''しかし、私はまだ同じエラーを取得します。 – Thomas

+0

@Henryは、基本的にソフトウェア開発のモットーです – Thomas

答えて

4

あなたは特別なjooqRuntime設定に適切なデータベース・ドライブ・クラスを配置する必要がありドキュメンテーションによると、これは動作しません:接続されているデータベースに応じて、

、あなたが配置する必要があります ジェネレータのクラスパス上の対応するドライバ。

dependencies { jooqRuntime 'postgresql:postgresql:9.1-901.jdbc4' }

+0

あなたロック!このエラーは、何時間も私を狂ってしまった! – craastad

関連する問題