보뇨 다이어리

script maven 컴파일시 maven-compiler-plugin:3.8.1:compile 에러 해결 본문

컴퓨터 관련/환경 정보

script maven 컴파일시 maven-compiler-plugin:3.8.1:compile 에러 해결

보뇨 2023. 3. 22. 21:41
반응형

주로는 인텔리제이 메이븐 플러그인을 통해서 컴파일/빌드를 진행하는데 간간히 스크립트를 통해 실행해야될때가 있었다.

그땐 맥사용을 하다보니 글로벌 Maven 을 설치해둬서 프로젝트에 적혀있는 메이븐컴파일러와 버전이 다른경우가 종종 있었지만 사용상 문제가 없었다.

JDK 버전을 해당 프로젝트에서는 8 버전을 쓰고있고 로컬 글로벌로는 8, 11, 17 에서 기본으로 17을 사용하고있었다.

 

이 상태에서 mvn compile 할때 아래와 같이 에러가 나기시작했다.

===============================================================================================================
 BUILD
---------------------------------------------------------------------------------------------------------------
### PROJECT_NAME : school-core
$ cd /Users/joonseolee/Documents/stadium2/school-server/sh/../school-core
$ mvn clean package -DskipTests
# MAVEN BUILD ERROR : botpltm-builder - [INFO] Scanning for projects...
[WARNING] The requested profile "dev" could not be activated because it does not exist.
[INFO] 
[INFO] ----------------< com.joonseolee.school:school-core >----------------
[INFO] Building school-core 0.0.1-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.1.0:clean (default-clean) @ school-core ---
[INFO] Deleting /Users/joonseolee/Documents/stadium2/school-server/school-core/target
[INFO] 
[INFO] --- resources:3.1.0:resources (default-resources) @ school-core ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
[INFO] Copying 31 resources
[INFO] 
[INFO] --- compiler:3.8.1:compile (default-compile) @ school-core ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 744 source files to /Users/joonseolee/Documents/stadium2/school-server/school-core/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.692 s
[INFO] Finished at: 2023-03-22T11:08:20+09:00
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "dev" could not be activated because it does not exist.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project botpltm-builder: Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x196e046d) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x196e046d -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException #

 

하단에 보면 LombokProcessor 쪽에서 에러 문구가 나오고있는데

상단에서도 Profile dev 라는 문구로 에러가 나오고있지만 서로 연관되어보이진않았다.

 

stackoverflow 에서는 lombok 버전을 업그레이드하면 된다고해서 시도해보니 되긴했다 다만 이미 기존에도 컴파일이 잘되던 프로젝트에서 롬복 이슈라고 생각하기에는 이상해서 좀 더 찾아보니 최상단에서 말을 했던 Jdk 버전이 문제가 되었다.

프로젝트상으로는 분명 Jdk 8 을 사용하도록했지만 command 라인으로는 기본으로 설정된 17 로 읽고있었고 무엇보다 메이븐이 jdk 17 을 가지고 사용되고있었기때문에 문제가 난걸로 보였다.

 

아래 코드는 기존에 jdk 17 로 사용중이였던 메이븐

 ✘ joonseolee@home  JavaVirtualMachines  mvn --version
Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
Maven home: /opt/homebrew/Cellar/maven/3.9.1/libexec
Java version: 17.0.5, vendor: Eclipse Adoptium, runtime: /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Default locale: ko_KR, platform encoding: UTF-8
OS name: "mac os x", version: "12.6.2", arch: "aarch64", family: "mac"

 

아래 코드는 jdk 8 로 설정을 바꾼 상태의 메이븐

 ✘ joonseolee@home  mvn --version
Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
Maven home: /opt/homebrew/Cellar/maven/3.9.1/libexec
Java version: 1.8.0_292, vendor: AdoptOpenJDK, runtime: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre
Default locale: ko_KR, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"

 

 

즉 결론은 2가지 해결방법이 있다.

롬복 버전을 바꾸던지 로컬에 설치해둔 메이븐의 jdk버전을 변경이다!!

반응형