plugins { id 'org.springframework.boot' version '2.6.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'org.asciidoctor.jvm.convert' version '3.3.2' id 'java' } group = 'com.just-pickup' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } asciidoctorExtensions } repositories { mavenCentral() maven { url 'https://repo.spring.io/milestone' } } ext { set('snippetsDir', file("build/generated-snippets")) set('springCloudVersion', "2021.0.0") } dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' implementation 'org.springframework.cloud:spring-cloud-starter-openfeign' /*implementation 'org.springframework.boot:spring-boot-starter-amqp'*/ implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'org.springframework.cloud:spring-cloud-starter-config' /*implementation 'org.springframework.kafka:spring-kafka'*/ implementation 'org.springframework.boot:spring-boot-starter-data-redis' // https://mvnrepository.com/artifact/com.github.gavlyukovskiy/p6spy-spring-boot-starter implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.0' // https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt implementation 'io.jsonwebtoken:jjwt:0.9.1' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'org.postgresql:postgresql' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.amqp:spring-rabbit-test' testImplementation 'org.springframework.kafka:spring-kafka-test' testImplementation 'org.springframework.security:spring-security-test' testImplementation 'com.h2database:h2' testImplementation 'org.springframework.security:spring-security-test' testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc' // operation block 을 위한 의존성 asciidoctorExtensions 'org.springframework.restdocs:spring-restdocs-asciidoctor' // Querydsl implementation 'com.querydsl:querydsl-jpa' // Querydsl JPAAnnotationProcessor 사용 지정 annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jpa" // java.lang.NoClassDefFoundError(javax.annotation.Entity) 발생 대응 annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError(javax.annotation.Generated) 발생 대응 annotationProcessor "jakarta.annotation:jakarta.annotation-api" } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } } test { outputs.dir snippetsDir useJUnitPlatform() } asciidoctor { configurations 'asciidoctorExtensions' attributes 'snippets': snippetsDir dependsOn test } bootJar { dependsOn asciidoctor copy { from "${asciidoctor.outputDir}" into 'src/main/resources/static/docs' } } // clean task 실행시 QClass 삭제 clean { delete file('src/main/generated') // 인텔리제이 Annotation processor 생성물 생성 위치 }