사용자 도구

사이트 도구


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 {
  outputs.upToDateWhen { false }
 
  doLast {
      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.1513816024.txt.gz · 마지막으로 수정됨: 2017/12/21 08:57 저자 kwon37xi