-
Avro Gradle source, outputDir (사용자 지정)시리즈/Avro 2024. 10. 2. 03:47
지난 포스트에 이어서 *.avsc 파일의 위치와 outputDir의 위치를 바꾸는 방법으로 설정해봅시다.
setting.gradle은 지난 포스트와 같습니다.build.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) }
avro 스키마 예제
- namespace가 생성된 자바객체의 패키지 위치가 됩니다.
{ "name": "OrderCancelKafkaEvent", "namespace": "com.example.springkafkaavro.common.kafka.model", "type": "record", "fields": [ { "name": "odrderId", "type": "long" } ] }
gradle build 결과
후기
Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka - Ali Gelenler 강의를 듣던 도중 처음 접한 데이터 직렬화/역직렬화 라이브러리였다. 평소에도 Json 보다 더 좋은게 있지 않을까 해서 찾아본게 yaml, Bson 정도 였는데 이번 기회에 Avro에 대해 알게 되어 시야가 넓어진 것 같다.
Ref
'시리즈 > Avro' 카테고리의 다른 글
Avro Gradle Plugin (디폴트 설정) (2) 2024.10.02 Avro VS JSON (2) 2024.10.02 Avro 란? (0) 2024.10.02 댓글
- namespace가 생성된 자바객체의 패키지 위치가 됩니다.