Gradle with QueryDSL 4.1.4 & Intellij

匿名 (未验证) 提交于 2019-12-03 09:05:37

问题:

I am trying to get my Q Classes for queryDSL 1.4.1 recongised in a Spring-Boot 1.5.2 project. The IDE is Intellij Ultimate.

build.gradle

buildscript { ext {     springBootVersion = '1.5.2.RELEASE'     } repositories {     mavenCentral()     } dependencies {     classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")     } }  plugins {     id 'net.ltgt.apt' version '0.8'     id 'java' }  apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'idea'  version = '0.0.5-SNAPSHOT' sourceCompatibility = 1.8  ext {     queryDslVersion = '4.1.4'     javaGeneratedSources = file("$buildDir/generated-sources/java") }  compileJava {     doFirst {         javaGeneratedSources.mkdirs()     }     options.compilerArgs += [             '-parameters', '-s', javaGeneratedSources     ] }  idea {     module {         sourceDirs += file('generated/')         generatedSourceDirs += file('generated/')     } }  repositories {     mavenCentral() }  dependencies {     compile('org.springframework.boot:spring-boot-starter-data-jpa')     compile('org.springframework.boot:spring-boot-starter-jdbc')     compile('org.springframework.boot:spring-boot-starter-thymeleaf')     compile('org.springframework.boot:spring-boot-starter-web')     compile('org.springframework.boot:spring-boot-starter-security')     compile('org.springframework.boot:spring-boot-starter-mail:1.5.7.RELEASE')     compile ("org.thymeleaf.extras:thymeleaf-extras-springsecurity4:3.0.0.RELEASE")     compile group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: '1.5.2.RELEASE'     compile group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity4', version: '2.1.2.RELEASE'     compile group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version: '1.5.2.RELEASE'     compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0")      compile group: 'org.hibernate', name: 'hibernate-java8'      compile "com.querydsl:querydsl-root:$queryDslVersion"     compile "com.querydsl:querydsl-jpa:$queryDslVersion"     compileOnly "com.querydsl:querydsl-apt:$queryDslVersion:jpa"      compile("org.springframework.boot:spring-boot-devtools")     compile('mysql:mysql-connector-java')     testCompile('org.hsqldb:hsqldb')     testCompile('org.springframework.boot:spring-boot-starter-test')  } 

The Q classes are generated at:

build\generated\source\apt\main\generated\com\example\domain 

Even though the javaGeneratedSources points to file $buildDir/generated-sources/java (that folder is empty).

The build error is:

C:\Users\User\IdeaProjects\demo3\src\main\java\com\example\services\EpServiceImpl.java:13: error: cannot find symbol import com.example.domain.QEp; ^ symbol: class QEp location: package com.example.domain

I check other Stack Overflow answers here and here but I have not been able to get these methods to work.

回答1:

I recommend trying this.

buildscript {     ext {         querydslVersion    = "4.1.4"         metaModelsSourcesDir = file("metamodels")        } }  configurations {     querydslapt }  sourceSets {     main {         java {             srcDir metaModelsSourcesDir         }     } }   task querymodels(type: JavaCompile, group: 'build') {     doFirst {         delete metaModelsSourcesDir;         metaModelsSourcesDir.mkdirs();     }      classpath = configurations.compile + configurations.querydslapt     destinationDir = metaModelsSourcesDir      source = sourceSets.main.java     options.compilerArgs = [             "-proc:only",             "-processor", "com.querydsl.apt.jpa.JPAAnnotationProcessor",             "-s", metaModelsSourcesDir     ] }  dependencies {     compile("com.querydsl:querydsl-core:${querydslVersion}")     compile("com.querydsl:querydsl-jpa:${querydslVersion}")      querydslapt("com.querydsl:querydsl-apt:${querydslVersion}") } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!