首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用jooq和gradle-jooq-plugin (kotlin)生成代码

用jooq和gradle-jooq-plugin (kotlin)生成代码
EN

Stack Overflow用户
提问于 2020-04-13 14:34:33
回答 1查看 3.3K关注 0票数 1

我试着用jooq和gradle (kotlin)。来源:gradle-jooq plugin

我从昨天起就在尝试,现在我没有任何资源可看。

我想我搞错了,因为我是科特林的新手。但是这些例子对我也没有用(我知道插件的解释很好,例子也很容易。)

我非常感谢你们中的任何人能带我去我犯的错误,因为我非常好奇。

下面是我的build.gradle文件的一个片段。我正在用Junit 5进行测试(如果它有任何影响,我想不会)。

代码语言:javascript
运行
复制
import nu.studer.gradle.jooq.JooqEdition

plugins {
    java
    jacoco // test coverage and reports
    id("org.springframework.boot") version "2.2.6.RELEASE"
    id("org.sonarqube") version "2.8"
    id("nu.studer.jooq") version "4.1"
    id("java-library")
    `kotlin-dsl`
}

apply(plugin = "io.spring.dependency-management")
apply(plugin = "nu.studer.jooq")

dependencies {
    apply(plugin = "nu.studer.jooq")

    // ### Spring ###
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-jdbc")
    implementation("org.springframework.boot:spring-boot-starter-jooq")
    compileOnly("org.springframework.boot:spring-boot-starter-actuator")


    // ### Database ###
    implementation("org.postgresql:postgresql:42.2.11")
    implementation("org.liquibase:liquibase-core:3.8.8")
    implementation("org.jooq:jooq")
    jooqRuntime("postgresql:postgresql:9.1-901.jdbc4")

}

ext {
    jooq.version = "3.12.3"
}

java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}


jooq {
    version = "3.12.3"
    edition = JooqEdition.OSS

    "sample"(sourceSets["main"]) {

    }
}

我的问题

"sample"(sourceSets["main"])来自这里。一个格拉德尔(科特林)的例子。但我得到了以下错误:

Expression '"sample"' of type 'String' cannot be invoked as a function. The function 'invoke()' is not found

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-13 17:06:35

在jooq配置中,您使用的示例函数设置为string,而不是函数。

查看这里的文档:https://github.com/etiennestuder/gradle-jooq-plugin

你应该拥有这个:

代码语言:javascript
运行
复制
jooq {
  version = '3.12.3'
  edition = 'OSS'
  generateSchemaSourceOnCompilation = true
  sample(sourceSets.main) {
    jdbc {
      driver = 'org.postgresql.Driver'
      url = 'jdbc:postgresql://localhost:5432/sample'
      user = 'some_user'
      password = 'secret'
      properties {
        property {
          key = 'ssl'
          value = 'true'
        }
      }
    }
    generator {
      name = 'org.jooq.codegen.DefaultGenerator'
      strategy {
        name = 'org.jooq.codegen.DefaultGeneratorStrategy'
        // ...
      }
      database {
        name = 'org.jooq.meta.postgres.PostgresDatabase'
        inputSchema = 'public'
        forcedTypes {
          forcedType {
            name = 'varchar'
            expression = '.*'
            types = 'JSONB?'
          }
          forcedType {
            name = 'varchar'
            expression = '.*'
            types = 'INET'
          }
        }
        // ...
      }
      generate {
        relations = true
        deprecated = false
        records = true
        immutablePojos = true
        fluentSetters = true
        // ...
      }
      target {
        packageName = 'nu.studer.sample'
        // directory = ...
      }
    }
  }
}

顺便说一句,要让Jooq生成您的代码,您必须向它提供到数据库的连接字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61190174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档