๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Environment·Tool

[Groovy] Unable to load class org.apache.groovy.jaxb.extensions.JaxbExtensions due to missing dependency javax/xml/bind/JAXBContext ์—๋Ÿฌ ์›์ธ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

by Leica 2020. 2. 26.
๋ฐ˜์‘ํ˜•
  • ๊ด€๋ จ ๊ธ€

- [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

 

VM ์˜ต์…˜ ์ถ”๊ฐ€

 

์ฐธ๊ณ ๋กœ amazon corretto 11 + groovy 3 ์กฐํ•ฉ์—์„œ๋Š” JAXB ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ์ถ”๊ฐ€ํ•ด์คŒ์œผ๋กœ์จ ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.


  • ๊ด€๋ จ ๊ธ€

- [Environment·Tool] - IntelliJ์—์„œ Groovy ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‹คํ–‰ํ•˜๊ธฐ

 

References

https://www.logicbig.com/tutorials/misc/groovy/intellij.html

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€