[java] Maven을 사용하여 자바 어노테이션 프로세서 작성하기
이 블로그 포스트에서는 Maven을 사용하여 자바 어노테이션 프로세서를 작성하는 방법에 대해 알아보겠습니다. 자바 어노테이션 프로세서는 컴파일 시간에 소스 코드를 분석하고 처리하는데 사용되며, 코드 생성, 검증, 리소스 처리 등 다양한 작업에 활용될 수 있습니다.
Maven 프로젝트 설정
먼저 Maven을 사용하여 프로젝트를 설정해야합니다.
- Maven을 설치하고 환경 변수를 설정합니다.
- 새로운 Maven 프로젝트를 생성합니다:
mvn archetype:generate -DgroupId=com.example -DartifactId=annotation-processor-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
- 생성된 프로젝트 폴더로 이동합니다:
cd annotation-processor-example
어노테이션 프로세서 작성하기
이제 어노테이션 프로세서를 작성해보겠습니다.
src/main/java
폴더 아래에 새로운 패키지를 생성합니다:
mkdir -p src/main/java/com/example/annotation
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();
}
src/main/java
폴더 아래에 새로운 패키지를 생성합니다:
mkdir -p src/main/java/com/example/processor
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 빌드 설정에 어노테이션 프로세서를 추가해야합니다.
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>
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>
어노테이션 프로세서 사용하기
이제 프로젝트를 빌드하고 어노테이션 프로세서를 사용해보겠습니다.
- 프로젝트 루트 폴더에서 다음 명령을 실행하여 프로젝트를 빌드합니다:
mvn clean package
- 빌드가 성공하면
target
폴더 아래에 JAR 파일이 생성됩니다. - 생성된 JAR 파일을 다른 프로젝트에 추가하고 어노테이션을 사용하면, 어노테이션 프로세서가 실행되어 정의된 로직이 처리됩니다.
결론
Maven을 사용하여 자바 어노테이션 프로세서를 작성하는 방법을 알아보았습니다. 어노테이션 프로세서는 코드 생성, 검증, 리소스 처리 등 다양한 작업에 유용하게 활용될 수 있습니다. Maven을 통해 프로젝트를 설정하고 의존성을 추가하여 프로세서를 사용할 수 있습니다.