immzi
immzi

Reputation: 121

taskdef class com.sun.tools.xjc.XJCTask cannot be found

I am trying to generate classes from an XSD file in a Springboot project with multiple modules. I tried to follow the guide given here. I have the below config in my root build.gradle

buildscript {
    ext {
        springBootVersion = '1.3.5.RELEASE'
    }
    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/libs-release" }
        maven { url "https://mvnrepository.com/artifact" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE")
        //####################### XJC - JDK 1.7/1.8 ####################
        classpath 'com.github.jacobono:gradle-jaxb-plugin:1.3.5'
    }
}

subprojects {

    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'idea'
    apply plugin: 'spring-boot'
    apply plugin: 'io.spring.dependency-management'
    //####################### XJC - JDK 1.7/1.8 ####################
    apply plugin: 'com.github.jacobono.jaxb'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/libs-release" }
        maven { url "https://mvnrepository.com/artifact" }
    }

    task wrapper(type: Wrapper) {
        gradleVersion = '2.3'
    }

}

and below config in my module's build.gradle

dependencies {
    compile project(':appCommon')
    compile("org.springframework.boot:spring-boot-starter")
}

//####################### XJC - JDK 1.7/1.8 ####################
jaxb {
    xjc {
        xsdDir = "schemas/v1.1"
        generatePackage = "com.test.domain.v1_1"
    }
}

when I run the xjc task from my IntelliJ on my module, I am getting an exception as below

taskdef class com.sun.tools.xjc.XJCTask cannot be found
 using the classloader AntClassLoader[]

Any help with what is going wrong is appreciated

Upvotes: 2

Views: 13081

Answers (1)

Justin Wrobel
Justin Wrobel

Reputation: 2029

Looks like you're missing the jaxb dependencies. In your module's build.gradle add the following:

dependencies { 
  jaxb 'com.sun.xml.bind:jaxb-xjc:2.2.7-b41'
  jaxb 'com.sun.xml.bind:jaxb-impl:2.2.7-b41'
  jaxb 'javax.xml.bind:jaxb-api:2.2.7'
}

Upvotes: 3

Related Questions