Generating JPA2 Metamodel from a Gradle build script

前端 未结 7 1390
长情又很酷
长情又很酷 2020-11-30 02:24

I\'m trying to set up a Gradle build script for a new project. That project will use JPA 2 along with Querydsl.

On the following page of Querydsl\'s reference docume

7条回答
  •  攒了一身酷
    2020-11-30 03:07

    This guy's gist worked for me: https://gist.github.com/EdwardBeckett/5377401

    sourceSets {
        generated {
            java {
                srcDirs = ['src/main/generated']
            }
        }
    }
    
    configurations {
        querydslapt
    }
    
    dependencies {
        compile 'org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final'
        compile "com.mysema.querydsl:querydsl-jpa:$querydslVersion"
        querydslapt "com.mysema.querydsl:querydsl-apt:$querydslVersion"
    }
    
    task generateQueryDSL(type: JavaCompile, group: 'build', description: 'Generates the QueryDSL query types') {
        source = sourceSets.main.java
        classpath = configurations.compile + configurations.querydslapt
        options.compilerArgs = [
                "-proc:only",
                "-processor", "com.mysema.query.apt.jpa.JPAAnnotationProcessor"
        ]
        destinationDir = sourceSets.generated.java.srcDirs.iterator().next()
    }
    
    compileJava {
        dependsOn generateQueryDSL
        source generateQueryDSL.destinationDir
    }
    
    compileGeneratedJava {
        dependsOn generateQueryDSL
        options.warnings = false
        classpath += sourceSets.main.runtimeClasspath
    }
    
    clean {
        delete sourceSets.generated.java.srcDirs
    }
    
    idea {
        module {
            sourceDirs += file('src/main/generated')
        }
    }
    

提交回复
热议问题