[java] Maven을 사용하여 자바 어노테이션 프로세서 작성하기

이 블로그 포스트에서는 Maven을 사용하여 자바 어노테이션 프로세서를 작성하는 방법에 대해 알아보겠습니다. 자바 어노테이션 프로세서는 컴파일 시간에 소스 코드를 분석하고 처리하는데 사용되며, 코드 생성, 검증, 리소스 처리 등 다양한 작업에 활용될 수 있습니다.

Maven 프로젝트 설정

먼저 Maven을 사용하여 프로젝트를 설정해야합니다.

  1. Maven을 설치하고 환경 변수를 설정합니다.
  2. 새로운 Maven 프로젝트를 생성합니다:
mvn archetype:generate -DgroupId=com.example -DartifactId=annotation-processor-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  1. 생성된 프로젝트 폴더로 이동합니다:
cd annotation-processor-example

어노테이션 프로세서 작성하기

이제 어노테이션 프로세서를 작성해보겠습니다.

  1. src/main/java 폴더 아래에 새로운 패키지를 생성합니다:
mkdir -p src/main/java/com/example/annotation
  1. src/main/java/com/example/annotation 폴더 아래에 CustomAnnotation.java라는 이름의 Java 파일을 생성하고 다음과 같이 작성합니다:
package com.example.annotation;

import java.lang.annotation.*;

@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.TYPE)
public @interface CustomAnnotation {
    String value();
}
  1. src/main/java 폴더 아래에 새로운 패키지를 생성합니다:
mkdir -p src/main/java/com/example/processor
  1. src/main/java/com/example/processor 폴더 아래에 CustomAnnotationProcessor.java라는 이름의 Java 파일을 생성하고 다음과 같이 작성합니다:
package com.example.processor;

import javax.annotation.processing.*;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import java.util.Set;

@SupportedAnnotationTypes("com.example.annotation.CustomAnnotation")
@SupportedSourceVersion(SourceVersion.RELEASE_8)
public class CustomAnnotationProcessor extends AbstractProcessor {

    @Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        // 어노테이션 프로세싱 로직 구현
        return true;
    }
}

Maven 빌드 설정

이제 Maven 빌드 설정에 어노테이션 프로세서를 추가해야합니다.

  1. pom.xml 파일을 열고 build 섹션 아래에 다음 의존성을 추가합니다:
<dependencies>
    <dependency>
        <groupId>com.google.auto.service</groupId>
        <artifactId>auto-service</artifactId>
        <version>1.0-rc7</version>
        <optional>true</optional>
    </dependency>
</dependencies>
  1. build 섹션 아래에 다음 플러그인을 추가합니다:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <annotationProcessorPaths>
                    <annotationProcessorPath>
                        <groupId>com.google.auto.service</groupId>
                        <artifactId>auto-service</artifactId>
                        <version>1.0-rc7</version>
                    </annotationProcessorPath>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

어노테이션 프로세서 사용하기

이제 프로젝트를 빌드하고 어노테이션 프로세서를 사용해보겠습니다.

  1. 프로젝트 루트 폴더에서 다음 명령을 실행하여 프로젝트를 빌드합니다:
mvn clean package
  1. 빌드가 성공하면 target 폴더 아래에 JAR 파일이 생성됩니다.
  2. 생성된 JAR 파일을 다른 프로젝트에 추가하고 어노테이션을 사용하면, 어노테이션 프로세서가 실행되어 정의된 로직이 처리됩니다.

결론

Maven을 사용하여 자바 어노테이션 프로세서를 작성하는 방법을 알아보았습니다. 어노테이션 프로세서는 코드 생성, 검증, 리소스 처리 등 다양한 작업에 유용하게 활용될 수 있습니다. Maven을 통해 프로젝트를 설정하고 의존성을 추가하여 프로세서를 사용할 수 있습니다.

참고 자료