사용자 도구

사이트 도구


gradle:jooq_codegen

문서의 이전 판입니다!


jOOQ gradle code generation

Gradle 에서 코딩으로 code generation

buildscript {
  dependencies {
    classpath 'org.jooq:jooq-codegen:3.10.2'
    classpath "mysql:mysql-connector-java:${mySqlDriverVersion}"
  }
}
 
task generateOrderShardJooqSources {
  def writer = new StringWriter()
  new groovy.xml.MarkupBuilder(writer)
    .configuration('xmlns': 'http://www.jooq.org/xsd/jooq-codegen-3.10.0.xsd') {
    jdbc() {
      driver('com.mysql.jdbc.Driver')
      url('jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8')
      user('un')
      password('password')
    }
    generator() {
      strategy {
        matchers {
          tables {
            table {
              tableClass {
                transform('PASCAL') // JqUser 와 같은 형식
                expression('JQ_$0')
              }
            }
          }
          fields {
            field {
              fieldIdentifier {
                transform('AS_IS') // 컬럼 필드 이름은 컬럼 이름과 동일하게
              }
            }
          }
        }
      }
      database() {
        name('org.jooq.util.mysql.MySQLDatabase') // DB 타입 설정
        includes('.*')
        excludes('db_migration_history') // flyway migration history 제외
        schemata {
          schema {
            inputSchema('test')
          }
          schema {
            inputSchema('sakila')
          }
        }
      }
 
      // Watch out for this caveat when using MarkupBuilder with "reserved names"
      // - http://stackoverflow.com/a/11389034/521799
      generate([:]) {
        pojos false
        daos false
      }
      target() {
        packageName('kr.pe.kwonnam.test.jooq')
        directory(file('src/generated/java-jooq').absolutePath)
      }
    }
  }
 
  org.jooq.util.GenerationTool.generate(
    javax.xml.bind.JAXB.unmarshal(new StringReader(writer.toString()), org.jooq.util.jaxb.Configuration.class)
  )
}
gradle/jooq_codegen.1513814958.txt.gz · 마지막으로 수정됨: 2017/12/21 08:39 저자 kwon37xi