/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or . */ apply from: rootProject.file( 'gradle/published-java-module.gradle' ) apply plugin: 'version-injection' apply plugin: 'org.hibernate.build.gradle.xjc' description = 'Annotation Processor to generate JPA 2 static metamodel classes' ext { xjcTargetDir = file( "${buildDir}/generated-src/xjc/main" ) xsdDir = file( "${projectDir}/src/main/xsd" ) } dependencies { testCompile libraries.junit testCompile libraries.jpa testCompile project( ':hibernate-core' ) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Java 9 ftw! if ( JavaVersion.current().isJava9Compatible() ) { xjc( 'com.sun.xml.bind:jaxb-impl:2.2.11' ) xjc( 'org.glassfish.jaxb:jaxb-xjc:2.2.11' ) xjc( 'org.jvnet.jaxb2_commons:jaxb2-basics:0.11.0' ) xjc( 'org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.11.0' ) xjc( 'javax.activation:javax.activation-api:1.2.0' ) xjc( 'javax.annotation:jsr250-api:1.0' ) } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } sourceSets.main { java.srcDir xjcTargetDir resources.srcDir xsdDir } compileTestJava { options.compilerArgs += [ "-proc:none" ] } task jaxb { // configure Gradle up-to-date checking inputs.dir( xsdDir ) outputs.dir( xjcTargetDir ) // perform actions doLast { xjcTargetDir.mkdirs() ant.taskdef(name: 'xjc', classname: 'org.jvnet.jaxb2_commons.xjc.XJC2Task', classpath: configurations.xjc.asPath) ant.xjc( destdir: ( xjcTargetDir as File ).absolutePath, package: 'org.hibernate.jpamodelgen.xml.jaxb', extension: 'true' ) { schema ( dir: xsdDir.path, includes: "*.xsd" ) } } } tasks.compileJava.dependsOn jaxb checkstyleMain.exclude '**/jaxb/**'