All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cc.catalysts.gradle.plugins.querydsl.QuerydslPlugin.groovy Maven / Gradle / Ivy

The newest version!
package cc.catalysts.gradle.plugins.querydsl

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.SourceSet

/**
 * @author Catalysts GmbH, www.catalysts.cc
 */
class QuerydslPlugin implements Plugin {

    void apply(Project project) {
        project.apply plugin: 'java'

        project.extensions.querydsl = new QueryDslExtension()

        project.convention.plugins.java.sourceSets.all { SourceSet sourceSet ->
            if (!sourceSet.name.toLowerCase().contains("test")) {
                sourceSet.java { srcDir project.querydsl.destinationDir }
            }
        }

        Task clean = project.task("cleanQueryDsl", type: CleanQueryDslTask, description: 'Cleans output directory of QueryDsl', group: "QueryDsl")
        project.tasks.getByName('clean').dependsOn(clean)
        Task create = project.task("createQueryDslOut", type: QueryDslOutputDirTask, dependsOn: clean, description: 'Creates output directory of QueryDsl', group: "QueryDsl")

        project.compileJava.doFirst {
            clean.execute()
            create.execute()
        }

        if (!project.hasProperty("querydslVersion")) {
            project.ext.querydslVersion = '2.9.0'
        }

        project.dependencies {
            compile 'com.mysema.querydsl:querydsl-root:' + project.querydslVersion
        }

        project.compileJava {
            options.compilerArgs = [
                    '-processor', 'com.mysema.query.apt.jpa.JPAAnnotationProcessor',
                    '-s', project.projectDir.absolutePath + File.separatorChar + project.querydsl.destinationDir
            ]
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy