Ich kann Gradle nicht so konfigurieren, dass die Abfragetypen für Querydsl generiert werden. Nach Ratschlägen wie #2444 sieht meine Konfiguration wie folgt aus:
plugins {
id 'org.springframework.boot' version '2.3.1.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-web'
compile 'com.querydsl:querydsl-mongodb:4.3.1'
annotationProcessor 'com.querydsl:querydsl-apt:4.3.1:morphia'
annotationProcessor 'org.springframework.boot:spring-boot-starter-data-mongodb'
}
Die Abfragetypen werden nicht generiert.
Gradle-Version: 6.4.1
Leider bietet die Dokumentation nur eine Konfiguration für Maven und alle anderen Anleitungen im Web scheinen veraltet zu sein.
Beispiel-Repository: https://github.com/viktorgt/spring-mongo-querydsl
Hallo @viktorgt bitte versuche das, ich kann damit die Q-Klassen generieren.. hoffe es hilft dir und es läuft auch für mich mit @com.querydsl.core.annotations.QueryEntity
und wie für dein build.gradle
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
dependencies {
//your general spring data and other spring dependencies
compileOnly 'com.querydsl:querydsl-apt'
compile 'com.querydsl:querydsl-mongodb:4.3.1'
compile 'com.querydsl:querydsl-core'
annotationProcessor ('com.querydsl:querydsl-apt:4.3.1:general', 'javax.annotation:javax.annotation-api')
}
//Your path can be as per your choice of source directory for the Q-Classes mine is /src/main/generated/
def queryDslOutput = file(new File(projectDir, '/src/main/generated/'))
sourceSets {
generated {
java {
srcDir queryDslOutput
}
}
}
compileJava {
options.compilerArgs << '-s'
options.compilerArgs << "$projectDir/src/main/generated/"
doFirst {
file(new File(projectDir, '/src/main/generated/')).mkdirs();
}
}
Bearbeiten: Ich verwende auch nicht die JPA-Anmerkungen oder das Spring-Data-JPA
Gradle-Version: 6.5
PS: Ich habe diesen Kommentar oft bearbeitet, weil ich neu bei Github bin.
@somudas93 danke. Das funktioniert tatsächlich 👍
Wir könnten auch delete(files("${projectDir}/src/main/generated/"))
im doFirst
Teil von compileJava
hinzufügen, damit alte Dateien überschrieben werden, wenn es Änderungen gibt.