apply plugin: 'antlr' apply plugin: org.hibernate.build.gradle.inject.InjectionPlugin apply plugin: org.hibernate.build.gradle.testing.matrix.MatrixTestingPlugin dependencies { compile( libraries.jta ) compile( libraries.dom4j ) compile( libraries.commons_annotations ) compile( libraries.jpa ) compile( libraries.javassist ) compile( libraries.antlr ) antlr( libraries.antlr ) provided( libraries.jandex ) provided( libraries.classmate ) provided( libraries.ant ) provided( libraries.jacc ) provided( libraries.validation ) testCompile( project(':hibernate-testing') ) testCompile( libraries.validation ) testCompile( libraries.jandex ) testCompile( libraries.classmate ) testCompile( libraries.mockito ) testCompile( libraries.validator ) { // for test runtime transitive = true } testRuntime( 'jaxen:jaxen:1.1' ) testRuntime( libraries.javassist ) } manifest.mainAttributes( 'Main-Class': 'org.hibernate.Version' ) jar { manifest { instruction 'Bundle-Description', 'Hibernate ORM Core' instruction 'Import-Package', 'javax.security.auth;resolution:=optional', 'javax.security.jacc;resolution:=optional', 'javax.validation;resolution:=optional', 'javax.validation.constraints;resolution:=optional', 'javax.validation.groups;resolution:=optional', 'javax.validation.metadata;resolution:=optional', // optionals 'javax.management;resolution:=optional', 'javax.naming.event;resolution:=optional', 'javax.naming.spi;resolution:=optional', 'org.apache.tools.ant;resolution:=optional', 'org.apache.tools.ant.taskdefs;resolution:=optional', 'org.apache.tools.ant.types;resolution:=optional', '*' // TODO: Uncomment once EntityManagerFactoryBuilderImpl no longer // uses ClassLoaderServiceImpl. instruction 'Export-Package', 'org.hibernate.boot.registry.classloading.internal', '*' } } sourceSets.main { ext.jaxbTargetDir = file( "${buildDir}/generated-src/jaxb/main" ) java.srcDir jaxbTargetDir originalJavaSrcDirs = java.srcDirs } // resources inherently exclude sources sourceSets.test.resources { setSrcDirs( ['src/test/java','src/test/resources'] ) } idea { module { sourceDirs += file( '$buildDir/generated-src/antlr/main' ) } } task jaxb { ext { // output directory jaxbTargetDir = file( "${buildDir}/generated-src/jaxb/main" ) // input schemas cfgXsd = file( 'src/main/resources/org/hibernate/hibernate-configuration-4.0.xsd') hbmXsd = file( 'src/main/resources/org/hibernate/hibernate-mapping-4.0.xsd' ) ormXsd = file( 'src/main/resources/org/hibernate/ejb/orm_2_0.xsd' ) // input bindings cfgXjb = file( 'src/main/xjb/hbm-configuration-bindings.xjb' ) hbmXjb = file( 'src/main/xjb/hbm-mapping-bindings.xjb' ) ormXjb = file( 'src/main/xjb/orm-bindings.xjb' ) } // configure Gradle up-to-date checking inputs.files( [cfgXsd, hbmXsd, ormXsd, cfgXjb, hbmXjb, ormXjb] ) outputs.dir( jaxbTargetDir ) // perform actions doLast { jaxbTargetDir.mkdirs() ant.taskdef(name: 'xjc', classname: 'org.jvnet.jaxb2_commons.xjc.XJC2Task', classpath: configurations.jaxb.asPath) ant.jaxbTargetDir = jaxbTargetDir // hibernate-configuration ant.xjc( destdir: '${jaxbTargetDir}', package: 'org.hibernate.internal.jaxb.cfg', binding: 'src/main/xjb/hbm-configuration-bindings.xjb', schema: cfgXsd.path ) // hibernate-mapping ant.xjc( destdir: '${jaxbTargetDir}', package: 'org.hibernate.internal.jaxb.mapping.hbm', binding: hbmXjb.path, schema: hbmXsd.path, extension: 'true' ) { arg line: '-Xinheritance' } // orm.xml (jpa) ant.xjc( destdir: '${jaxbTargetDir}', package: 'org.hibernate.internal.jaxb.mapping.orm', binding: 'src/main/xjb/orm-bindings.xjb', schema: ormXsd.path ) } } generateMainLoggingClasses.dependsOn jaxb generateMainLoggingClasses.dependsOn generateGrammarSource compileJava.dependsOn jaxb