MAKE IT SIMPLE

[Gradle] Java 11 에서 jaxb 라이브러리 사용하기 본문

Gradle

[Gradle] Java 11 에서 jaxb 라이브러리 사용하기

punchlips 2021. 2. 15. 17:49

2021/01/28 - [Gradle] - [Gradle] XSD, WSDL 파일로 JAXB 클래스 생성하기

 

[Gradle] XSD, WSDL 파일로 JAXB 클래스 생성하기

Spring Boot 프로젝트에서 gradle build script를 사용하여 스키마 정의 파일을 변환한 자바 오브젝트(jaxb classes)를 생성해줄 수 있다. build.gradle에 사용자 정의 task를 등록해주면 프로젝트 빌드시 지정한.

vincode.tistory.com

저번에 jdk 1.8 에서 xsd, wsdl 스키마 파일로 jaxb 클래스를 생성해 보았다.

자바 8 이후 부터는 jaxb 라이브러리가 내장 되어 있지 않아 javax.xml.bind 패키지가 기본적으로 제공되지 않는다.

간단하게 build.gradle에 직접 필요한 의존성을 추가로 주입해주면 된다. 이 의존성 찾는다고 하루종일 삽질했다..

참고로 자바 11에서 같은 작업을 하려면 jaxb 라이브러리의 버전이 2.2.1 이상이어야 한다!

 

1) JDK 11 다운받고 jre 등록해주기

-오라클에서 다운받으면 된다.

- 자바 11부터는 jre가 따로 구성되지 않는다. jdk 폴더 경로를(bin까지 아님) STS 나 Eclipse에 등록해주면 된다.

 

2) Gradle JVM 을 jdk 11로 설정해주기

 

3) build.gradle 에도 jdk 버전 다시 설정해주기

 

4) 지원하지 않는 dependency 주입해주기

dependencies {

  jaxb group: 'com.sun.xml.bind' , name: 'jaxb-xjc' , version: '2.3.1'
  jaxb group: 'com.sun.xml.bind' , name: 'jaxb-impl' , version: '2.3.1'
  jaxb group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
  jaxb group: 'org.glassfish.jaxb' , name: 'jaxb-core' , version: '2.3.0.1'
  compile group: 'javax.activation', name: 'activation', version: '1.1.1'

  implementation 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3'
  implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.3'

  annotationProcessor 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3'
  annotationProcessor 'org.glassfish.jaxb:jaxb-runtime:2.3.3'
  annotationProcessor 'javax.annotation:javax.annotation-api:1.3.2'

}

 

Comments