title: QueryDSL, spring-boot & Gradle
body: <p>I was hoping to bring querydsl into my spring-boot project via gradle.  Despite finding a couple of examples online, none of them actually work for me because of issues with dependencies (I think).  According to the QueryDSL support forum, gradle is not supported yet.  But I was wondering with all the gradle &amp; spring-boot being created if someone has managed to make it work yet?</p>
  
  <p>Here is my build.gradle:</p>
  
  <pre><code>apply plugin: 'java'
  apply plugin: 'groovy'
  apply plugin: 'idea'
  apply plugin: 'spring-boot'
  apply plugin: 'jacoco'
  apply plugin: 'war'
  
  buildscript {
      repositories {
          maven { url "http://repo.spring.io/libs-snapshot" }
          mavenLocal()
      }
      dependencies {
          classpath("org.springframework.boot:spring-boot-gradle-plugin:1.0.0.RC4")
      }
  }
  
  repositories {
      mavenCentral()
      maven { url: "http://repo.spring.io/libs-snapshot" }
  //    maven { url: "http://repo.spring.io/milestone" }
  
  }
  
  dependencies {
      compile("org.springframework.boot:spring-boot-starter-web:1.0.0.RC5")
      compile("org.springframework.boot:spring-boot-starter-data-jpa:1.0.0.RC5")
      compile("org.springframework:spring-orm:4.0.0.RC1")
      compile("org.hibernate:hibernate-entitymanager:4.2.1.Final")
      compile("com.h2database:h2:1.3.172")
      compile("joda-time:joda-time:2.3")
      compile("org.thymeleaf:thymeleaf-spring4")
      compile("org.codehaus.groovy.modules.http-builder:http-builder:0.7.1")
      compile('org.codehaus.groovy:groovy-all:2.2.1')
      compile('org.jadira.usertype:usertype.jodatime:2.0.1')
  
      // this line fails
      querydslapt "com.mysema.querydsl:querydsl-apt:3.3.2"
  
      testCompile('org.spockframework:spock-core:0.7-groovy-2.0') {
          exclude group: 'org.codehaus.groovy', module: 'groovy-all'
      }
      testCompile('org.codehaus.groovy.modules.http-builder:http-builder:0.7+')
      testCompile("junit:junit")
  }
  
  jacocoTestReport {
      group = "Reporting"
      description = "Generate Jacoco coverage reports after running tests."
  }
  
  task wrapper(type: Wrapper) {
      gradleVersion = '1.11'
  }
  
  
  sourceSets {
      main {
          generated {
              java {
                  srcDirs = ['src/main/generated']
              }
          }
  
          java {
              srcDirs = []
          }
          groovy {
              srcDirs = ['src/main/groovy', 'src/main/java']
          }
          resources {
              srcDirs = ['src/main/resources']
          }
  
          output.resourcesDir = "build/classes/main"
      }
  
      test {
          java {
              srcDirs = []
          }
          groovy {
              srcDirs = ['src/test/groovy', 'src/test/java']
          }
          resources {
              srcDirs = ['src/test/resources']
          }
  
          output.resourcesDir = "build/classes/test"
      }
  }
  
  
  configurations {
      // not really sure what this is, I see it in examples but not in documentation
      querydslapt
  }
  
  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')
      }
  }
  </code></pre>
  
  <p>But gradle fails with:</p>
  
  <pre><code>Could not find method querydslapt() for arguments [com.mysema.querydsl:querydsl-apt:3.3.2] 
  </code></pre>
  
  <p>I have tried changing the querydsl-apt version to earlier ones but I get the same error.</p>