2016-11-06 10 views
1

Я получаю ClassNotFoundException с сообщением java.lang.ClassNotFoundException: com.mysql.jdbc.Driver, когда я запустить generateTestDatabaseJooqSchema задачу из этого jooq plugin. Я не знаю, почему это было бы, так как я включил mysql:mysql-connector-java:6.0.5 в зависимости buildscript по линии 7.ClassNotFoundException в buildscript при использовании MySQL-разъем

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' 
} 

Это полный выход я получаю, когда я бегу задача:

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 

Мне все еще не очень нравится градация, так что это может быть вопрос о нобе, поэтому я ценю любую помощь, которую вы можете дать.

+0

@Henry я использовал 'применить плагин:«nu.studer.jooq'' однако я все еще получаю ту же ошибку. – Thomas

+0

@Henry, который является главным девизом разработки программного обеспечения – Thomas

ответ

4

Это не работает в соответствии с документацией вам нужно поместить соответствующий класс дисков базы данных специальной jooqRuntime конфигурации:

В зависимости от какой базы данных вы подключаетесь, вам необходимо поставить соответствующий драйвер на пути к классу генератора.

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

+0

YOU ROCK !!!! Эта ошибка заставляла меня сумасшедшим часами! – craastad