지난 포스트에 이어서 *.avsc 파일의 위치와 outputDir의 위치를 바꾸는 방법으로 설정해봅시다.
setting.gradle은 지난 포스트와 같습니다.
import com.github.davidmc24.gradle.plugin.avro.GenerateAvroJavaTask
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.4'
id 'io.spring.dependency-management' version '1.1.6'
//avro
// id "com.github.davidmc24.gradle.plugin.avro" version "1.9.1"
id "com.github.davidmc24.gradle.plugin.avro-base" version "1.9.1"
}
....
// avro
avro{
outputCharacterEncoding = "UTF-8"
}
def generateAvro = tasks.register("generateAvro", GenerateAvroJavaTask) {
source("src/main/resources/avro") // *.avsc 파일의 위치
outputDir = file("src/main/java") // 저장될 위치
}
tasks.named("compileJava").configure {
source(generateAvro)
}
{
"name": "OrderCancelKafkaEvent",
"namespace": "com.example.springkafkaavro.common.kafka.model",
"type": "record",
"fields": [
{
"name": "odrderId",
"type": "long"
}
]
}

Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka - Ali Gelenler 강의를 듣던 도중 처음 접한 데이터 직렬화/역직렬화 라이브러리였다. 평소에도 Json 보다 더 좋은게 있지 않을까 해서 찾아본게 yaml, Bson 정도 였는데 이번 기회에 Avro에 대해 알게 되어 시야가 넓어진 것 같다.