반응형
개발을 하다가 만난 java.lang.NoClassDefFoundError: com/querydsl/apt/AbstractQuerydslProcessor 에러를 해결했던 경험을 공유하려고 합니다. 결론부터 말하자면 apt-maven-plugin 플러그인을 제외했습니다.
오류 상황
이번에도 역시나 로컬에서는 문제가 없지만 다른 환경에서 문제가 있는 상황이었습니다. 개발을 하다보면 이런 일이 많은데요. Jenkins 에서 CI 를 위한 자동화 빌드 도중 에러가 발생한 것입니다. 에러 로그는 아래와 같습니다.
[ERROR] execute error
java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/querydsl/apt/AbstractQuerydslProcessor
at java.util.concurrent.FutureTask.report (FutureTask.java:122)
at java.util.concurrent.FutureTask.get (FutureTask.java:191)
at com.mysema.maven.apt.AbstractProcessorMojo.execute (AbstractProcessorMojo.java:346)
항상 그렇듯이 로컬에서는 문제가 없습니다.. 대체 뭐가 문제일까요?
해결 방법
결론적으로는 pom.xml 파일에서 apt-maven-plugin 플러그인을 제거했더니 해결되었습니다. 제거한 플러그인은 아래와 같습니다.
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
apt-maven-plugin 플러그인은 어노테이션 프로세싱을 하는 라이브러리인데, MongoAnnotationProcessor가 AbstractQuerydslProcessor를 상속하고 있어서 발생한 문제로 보입니다.
public class MongoAnnotationProcessor
extends com.querydsl.apt.AbstractQuerydslProcessor
MongoAnnotationProcessor 문서
반응형
'소프트웨어' 카테고리의 다른 글
오픈소스 컨트리뷰션 후기 (0) | 2024.01.14 |
---|---|
코딩 없이 Next.js 기반 블로그 만들기 (0) | 2023.12.20 |
ChatGPT 장애 (Oops! Our systems are ...) (0) | 2023.11.23 |
java.lang.UnsupportedOperationException 발생 케이스 (0) | 2022.12.31 |
DriverManager는 어떻게 Driver를 찾을까..? (0) | 2022.05.25 |