- ๊ด๋ จ ๊ธ
- [Environment·Tool] - IntelliJ์์ Groovy ํ๋ก์ ํธ ์์ฑํ๊ณ ํ ์คํธ ์ฝ๋ ์คํํ๊ธฐ
[Groovy] Unable to load class org.apache.groovy.jaxb.extensions.JaxbExtensions due to missing dependency javax/xml/bind/JAXBContext ์๋ฌ ์์ธ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ
Groovy ํ๋ก์ ํธ๋ฅผ ๋น๋ํ์ ๋ ์ด์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด,
Information:Groovyc: While compiling testGroovy:java.lang.NoClassDefFoundError: Unable to load class org.apache.groovy.jaxb.extensions.JaxbExtensions due to missing dependency javax/xml/bind/JAXBContext at org.codehaus.groovy.vmplugin.v8.Java8.configureClassNode(Java8.java:456) at org.codehaus.groovy.ast.ClassNode.lazyClassInit(ClassNode.java:273) at org.codehaus.groovy.ast.ClassNode.getMethods(ClassNode.java:395) at
...
์ผ๋จ ํด๋น groovy ํ๋ก์ ํธ์ JDK ๋ฒ์ ์ ํ์ธํด๋ณด์.
์๋ง JDK ๋ฒ์ 9 ์ด์์ผ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ JDK ๋ฒ์ 9 ์ด์์ ์ฌ์ฉํ ๊ฒฝ์ฐ JAXB ์ข ์์ฑ์ ์ถ๊ฐํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ JAXB ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ์ง ์์ ๊ฒฝ์ฐ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๋ ๊ฐ์ ๊ฒฝ์ฐ JDK 11 + groovy 3 ์กฐํฉ์์ ์ด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ 2๊ฐ์ง๊ฐ ์๋ค.
JDK ๋ฒ์ ์ 8 ์ดํ๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ๊ณผ JAXB ์ข ์์ฑ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ 1 - JDK ๋ฒ์ ๋ณ๊ฒฝ
JDK๋ฅผ 1.8๋ก ๋ณ๊ฒฝํ๊ณ ๋ค์ ๋น๋ํด๋ณด์.
์๊น์ ๋ฌ๋ฆฌ ๋น๋๊ฐ ์ ์์ ์ผ๋ก ๋ ๊ฒ์ด๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ 2 - JAXB ์ข ์์ฑ ์ถ๊ฐ
JDK ๋ฒ์ ์ ๋ฐ๊พธ์ง ๋ชปํ๋ ์ํฉ์ด๋ผ๋ฉด ํ๋ก์ ํธ์ JAXB ์ข ์์ฑ์ ์ถ๊ฐํด์ค๋ค.
JAXB jar ํ์ผ๋ค์ groovy SDK์ ํฌํจ๋์ด ์๋ค.
Groovy SDK ํ\lib\extras-jaxb์ ํด๋น jarํ์ผ๋ค์ด ์๋ค.
Groovy ํ๋ก์ ํธ dependency์ ์ด ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ ๋น๋ํด๋ณด๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์์ ์ผ๋ก ๋ ๊ฒ์ด๋ค.
ํน์ ์๋ฐ 9 ์ด์์์ JAXB jar ํ์ผ๋ค์ ์ถ๊ฐํด๋ ์๋ฌ๊ฐ ๋๋ค๋ฉด VM ์ต์ ์ ์๋ ์ต์ ์ ์ถ๊ฐํ๋ค.
--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
์ฐธ๊ณ ๋ก amazon corretto 11 + groovy 3 ์กฐํฉ์์๋ JAXB ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ์ถ๊ฐํด์ค์ผ๋ก์จ ํด๋น ์๋ฌ๊ฐ ํด๊ฒฐ๋์๋ค.
- ๊ด๋ จ ๊ธ
- [Environment·Tool] - IntelliJ์์ Groovy ํ๋ก์ ํธ ์์ฑํ๊ณ ํ ์คํธ ์ฝ๋ ์คํํ๊ธฐ
References
https://www.logicbig.com/tutorials/misc/groovy/intellij.html
๋๊ธ