|
|
@ -13,9 +13,6 @@ buildscript {
|
|
|
|
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
dependencies {
|
|
|
|
classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
|
|
|
|
classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
|
|
|
|
|
|
|
|
|
|
|
|
// JPA querydsl
|
|
|
|
|
|
|
|
//classpath("gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.10")
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -25,14 +22,6 @@ plugins {
|
|
|
|
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
|
|
|
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
|
|
|
|
id 'java'
|
|
|
|
id 'java'
|
|
|
|
id 'war'
|
|
|
|
id 'war'
|
|
|
|
//id 'net.ltgt.apt' version '0.21'
|
|
|
|
|
|
|
|
// querydsl
|
|
|
|
|
|
|
|
id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
|
|
|
|
|
|
|
|
//id 'org.openapi.generator' version '5.1.1'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// docker : jib
|
|
|
|
|
|
|
|
// bootWar --> jibDockerBuild
|
|
|
|
|
|
|
|
//id 'com.google.cloud.tools.jib' version '3.1.2' //
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// buildscript
|
|
|
|
// buildscript
|
|
|
@ -125,16 +114,18 @@ dependencies {
|
|
|
|
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.0'
|
|
|
|
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.0'
|
|
|
|
// implementation 'p6spy:p6spy:3.9.1'
|
|
|
|
// implementation 'p6spy:p6spy:3.9.1'
|
|
|
|
|
|
|
|
|
|
|
|
// JPA querydsl
|
|
|
|
// JPA querydsl ----------------------------------------------
|
|
|
|
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
|
|
|
|
implementation "com.querydsl:querydsl-jpa"
|
|
|
|
implementation "com.querydsl:querydsl-core:${queryDslVersion}"
|
|
|
|
// querydsl JPAAnnotationProcessor 사용 지정
|
|
|
|
implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
|
|
|
|
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
|
|
|
|
annotationProcessor(
|
|
|
|
// java.lang.NoClassDefFoundError(javax.annotation.Entity) 발생 대응
|
|
|
|
"javax.persistence:javax.persistence-api",
|
|
|
|
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
|
|
|
|
"javax.annotation:javax.annotation-api",
|
|
|
|
// java.lang.NoClassDefFoundError (javax.annotation.Generated) 발생 대응
|
|
|
|
"com.querydsl:querydsl-apt:${queryDslVersion}:jpa")
|
|
|
|
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
|
|
|
|
|
|
|
|
// ------------------------------------------------------------
|
|
|
|
// JPA mapstruct : lombok 과 함께 사용시 반드시 순서 지겨야 함다 - ㅡmapstruct이 먼저 선언된 경우
|
|
|
|
|
|
|
|
|
|
|
|
// JPA mapstruct -----------------------------------------------------------
|
|
|
|
|
|
|
|
// lombok 과 함께 사용시 반드시 순서 지겨야 함다 - ㅡmapstruct이 먼저 선언된 경우
|
|
|
|
// target class 에 @Builder 가 있어도 무시하고 생성자 + setter 를 사용하므로 정상적으로 Mapper 클래스를 Generation 하기 위해서
|
|
|
|
// target class 에 @Builder 가 있어도 무시하고 생성자 + setter 를 사용하므로 정상적으로 Mapper 클래스를 Generation 하기 위해서
|
|
|
|
// @NoArgsConstructor, @Setter 가 필요
|
|
|
|
// @NoArgsConstructor, @Setter 가 필요
|
|
|
|
// but, 최근 Setter 사용을 지양하는 추세라 mapstruct를 먼저 오도록 해서 @Builder 방식으로 Generation
|
|
|
|
// but, 최근 Setter 사용을 지양하는 추세라 mapstruct를 먼저 오도록 해서 @Builder 방식으로 Generation
|
|
|
@ -267,52 +258,21 @@ tasks.withType(JavaCompile) {
|
|
|
|
//-----------------------------------------------------------------------------------//
|
|
|
|
//-----------------------------------------------------------------------------------//
|
|
|
|
// querydsl
|
|
|
|
// querydsl
|
|
|
|
//-----------------------------------------------------------------------------------//
|
|
|
|
//-----------------------------------------------------------------------------------//
|
|
|
|
def querydslDir = "$buildDir/generated"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// querydsl 적용
|
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
|
|
|
|
main {
|
|
|
|
|
|
|
|
java {
|
|
|
|
|
|
|
|
srcDirs = ["$projectDir/src/main/java", querydslDir]
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
querydsl {
|
|
|
|
/** clean 태스크 실행시 QClass 삭제 */
|
|
|
|
jpa = true
|
|
|
|
/**
|
|
|
|
querydslSourcesDir = querydslDir
|
|
|
|
* Intellij IDEA - Build, Execution, Deployment - Build tools → Gradle 에서 ‘Build and run’ 설정값에 따라 ‘Annotation processor’ 생성물 위치가 달라짐
|
|
|
|
|
|
|
|
* Gradle: 각 모듈별 build/generated/sources/annotationProcessor/java/main
|
|
|
|
|
|
|
|
* ‘Q생성물’에 대한 별도의 정리작업을 하지 않아도 clean 태스크로 정리 가능
|
|
|
|
|
|
|
|
* IntellijI IDEA: 각 모듈별 src/main/generated
|
|
|
|
|
|
|
|
* Compiler Annotation procesoors 설정영향받음
|
|
|
|
|
|
|
|
* 기존 Q클래스는 갱신되지만, 엔티티 위치가 변경되거나 삭제된 경우 Q클래스는 그대로 유지
|
|
|
|
|
|
|
|
* Build, Execution, Deployment - Compiler -> Enable annotaion processing 활성화 필요
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
clean {
|
|
|
|
|
|
|
|
delete file('src/main/generated') // 인텔리제이 Annotation processor 생성물 생성위치
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
|
|
|
|
compileOnly {
|
|
|
|
|
|
|
|
extendsFrom annotationProcessor
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
querydsl.extendsFrom compileClasspath
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
compileQuerydsl {
|
|
|
|
|
|
|
|
options.annotationProcessorPath = configurations.querydsl
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// build시 querydsl 삭제후 재 컴파일
|
|
|
|
|
|
|
|
compileQuerydsl.doFirst {
|
|
|
|
|
|
|
|
if(file(querydslDir).exists())
|
|
|
|
|
|
|
|
delete(file(querydslDir))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// build시 querydsl 적용
|
|
|
|
|
|
|
|
compileJava {
|
|
|
|
|
|
|
|
options.compilerArgs << '-s'
|
|
|
|
|
|
|
|
options.compilerArgs << "$buildDir/generated/"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
doFirst {
|
|
|
|
|
|
|
|
if(file(querydslDir).exists())
|
|
|
|
|
|
|
|
delete(file(querydslDir))
|
|
|
|
|
|
|
|
file(querydslDir).mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------------//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test {
|
|
|
|
test {
|
|
|
|
exclude '**/*'
|
|
|
|
exclude '**/*'
|
|
|
|
//useJUnitPlatform()
|
|
|
|
//useJUnitPlatform()
|
|
|
|