当前位置: 首页 > 知识库问答 >
问题:

gradle生成失败,jooq配置为java。lang.ClassNotFoundException:com.mysql。jdbc。驾驶员

海信鸥
2023-03-14

伙计们。

我正在构建一个spring boot服务。现在,我将其设置为使用jooq查询本地MySQL实例。

但是,<代码>/gradlew build出现错误,无法加载类com.mysql。jdbc。驱动程序“”。

我遗漏了什么吗?

这是我的毕业剧本。

import nu.studer.gradle.jooq.JooqEdition

plugins {
    id 'org.springframework.boot' version '2.6.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'nu.studer.jooq' version '3.0.2'
    id 'java'
}

if(JavaVersion.current() != JavaVersion.VERSION_11){
    throw new GradleException("This build must be run with java 11")
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(11)
    }
}

repositories {
    mavenCentral()
}

group = 'snorlax'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

//create a fat Jar with all dependencies
jar {
    duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
    from {
        configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
    manifest {
        attributes "Main-Class": "com.snorlax.userservice.MainApplication"
    }
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

dependencies {
    // Spring boot
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    // Swagger
    implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
    implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'

    // Lombok
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'

    // RDS Connection
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'mysql:mysql-connector-java:8.0.27'
    implementation 'com.amazonaws.secretsmanager:aws-secretsmanager-jdbc:1.0.6'

    // JOOQ
    implementation 'org.springframework.boot:spring-boot-starter-jooq:2.6.2'
    implementation 'org.jooq:jooq-meta:3.15.5'
    implementation 'org.jooq:jooq-codegen:3.15.5'

}

test {
    useJUnitPlatform()
}

/************************
    jooq code generation
 *************************/
import org.jooq.codegen.GenerationTool
import org.jooq.meta.jaxb.*
GenerationTool.generate(new Configuration()
        .withJdbc(new Jdbc()
                .withDriver('com.mysql.jdbc.Driver')
                .withUrl('jdbc:mysql://127.0.0.1:3306/SnorlaxRds')
                .withUser('root')
                .withPassword('123456'))
        .withGenerator(new Generator()
                .withDatabase(new Database())
                .withGenerate(new Generate()
                        .withPojos(true)
                        .withDaos(true))
                .withTarget(new Target()
                        .withPackageName('com.snorlax.userservice')
                        .withDirectory('src/main/java/jooq'))))

共有1个答案

梁新觉
2023-03-14

我的错。

我错过了这里提到的buildscript{}块:https://www.jooq.org/doc/latest/manual/code-generation/codegen-gradle.

在添加了下面的部分之后,现在我的gradle构建工作了。

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        classpath 'org.jooq:jooq-codegen:3.16.2'
        classpath 'mysql:mysql-connector-java:8.0.27'
    }
}

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        classpath 'org.jooq:jooq-codegen:3.16.2'
        classpath 'mysql:mysql-connector-java:8.0.27'
    }
}

plugins {
    id 'org.springframework.boot' version '2.6.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

if(JavaVersion.current() != JavaVersion.VERSION_11){
    throw new GradleException("This build must be run with java 11")
}

repositories {
    mavenCentral()
}

group = 'snorlax'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

//create a fat Jar with all dependencies
jar {
    duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
    from {
        configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
    manifest {
        attributes "Main-Class": "com.snorlax.userservice.MainApplication"
    }
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

dependencies {
    // Spring boot
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    // Swagger
    implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
    implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'

    // Lombok
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'

    // RDS Connection
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'mysql:mysql-connector-java:8.0.27'

    // AWS secretes manager
    implementation 'com.amazonaws.secretsmanager:aws-secretsmanager-jdbc:1.0.6'

    // JOOQ
    implementation 'org.springframework.boot:spring-boot-starter-jooq'
    implementation 'org.jooq:jooq-meta:3.16.2'
    compileOnly 'org.jooq:jooq-codegen:3.16.2'

}

test {
    useJUnitPlatform()
}

/************************
    jooq code generation
 *************************/
import org.jooq.codegen.GenerationTool;
import org.jooq.meta.jaxb.*;

task generate {
    def outputDirectory = projectDir.toString() + '/src/main/java'
    println outputDirectory
    def configuration = new Configuration()
            .withJdbc(new Jdbc()
            .withDriver('com.mysql.cj.jdbc.Driver')
            .withUrl('jdbc:mysql://127.0.0.1:3306/snorlaxRds')
            .withUser('root')
            .withPassword('123456'))
            .withGenerator(new Generator()
                    .withDatabase(new Database().withInputSchema("snorlaxRds"))
                    .withGenerate(new Generate()
                            .withPojos(true)
                            .withDaos(true))
                    .withTarget(new Target()
                            .withPackageName('snorlax.userservice.database')
                            .withDirectory(outputDirectory)));

    doLast {
        GenerationTool.generate(configuration)
    }
}


 类似资料:
  • 我用jpackage构建了一个java应用程序。该应用程序在eclipseT中工作。jpackage的结果可以安装在windows上并启动。应用程序使用javafx ui。该应用程序基于Java 17和使用模块。到目前为止,一切顺利。应用程序应该写入MySQL数据库,然后问题就出现了。mysql-connector-java-8.0.27。jar不支持模块,因此不能像--module path下的

  • 我在Stack Overflow中见过很多解决方案,但没有一个对我有效。所以我得到了这个例外。我的pom。这里有xml代码 我还在tomcat/lib文件夹中添加了jar文件。但对我来说什么都不管用。

  • 我最近升级了我的项目。 我的项目生成失败并出现错误: 任务:检查样式主失败 . gradle\daemon\4.10.2\etc\check style\checkstyle-suppressions.xml(系统找不到指定路径) 这是我的gradle构建文件:

  • 最近我在eclipse上建立了一个Minecraft Forge工作区。我在过去用forge(MC1.6.4等等)创建了minecraft MOD,尽管从那以后有了很大的变化。我正在尝试使用Forge1.15.2-31.1.0 mdk和JDK 1.8.0_241进行修改 我创建了一个RunClient。bat文件,用于编译和构建我的项目 它完全编译到98%,然后崩溃。这是我的事故报告: --UPD

  • 我想用我的数据库配置glassfish。我创建jdbc ressource时是这样的: jndi名称:jdbc/MysqlDataSource 池名:MysqlConnPoll 我创建的连接池如下所示: 池名称:MysqlConnPoll 资源类型:java.sql.driver 驱动类名:com.mysql.jdbc.driver 在其他属性中 数据库名称:name_db 用户:root 密码:

  • 无法从Github生成android项目,错误为“Gradle sync failed:Cause:error=0,spawn failed”有关详细信息,请参阅IDE日志(帮助|显示日志)(434ms) 任何想法 ?