/* * 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 http://www.gnu.org/licenses/lgpl-2.1.html */ apply from: rootProject.file( 'gradle/java-module.gradle' ) apply from: rootProject.file( 'gradle/publishing-repos.gradle' ) apply from: rootProject.file( 'gradle/publishing-pom.gradle' ) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Configurations and Dependencies configurations { asciidoclet { description = 'Dependencies for Asciidoctor Javadoc taglet' } } dependencies { asciidoclet( libraries.asciidoclet ) } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Jar jar { manifest { attributes( // Basic JAR manifest attributes 'Specification-Title': project.name, 'Specification-Version': project.version, 'Specification-Vendor': 'Hibernate.org', 'Implementation-Title': project.name, 'Implementation-Version': project.version, 'Implementation-Vendor': 'Hibernate.org', 'Implementation-Vendor-Id': 'org.hibernate', 'Implementation-Url': 'http://hibernate.org/orm', // Java 9 module name 'Automatic-Module-Name': project.java9ModuleName, // Hibernate-specific JAR manifest attributes 'Hibernate-VersionFamily': project.ormVersion.family, 'Hibernate-JpaVersion': project.jpaVersion.name, // BND Plugin instructions (for OSGi): 'Bundle-Name': project.name, 'Bundle-SymbolicName': project.java9ModuleName, 'Bundle-Vendor': 'Hibernate.org', 'Bundle-DocURL': "http://www.hibernate.org/orm/${project.ormVersion.family}", // This is overridden in some sub-projects 'Import-Package': [ // Temporarily support JTA 1.1 -- Karaf and other frameworks still // use it. Without this, the plugin generates [1.2,2). 'javax.transaction;version="[1.1,2)"', // Also import every package referenced in the code // (note that '*' is resolved at build time to a list of packages) '*' ].join( ',' ), '-exportcontents': "*;version=${project.version}" ) } } task sourcesJar(type: Jar) { from project.sourceSets.main.allSource manifest { attributes( // Basic JAR manifest attributes 'Specification-Title': project.name, 'Specification-Version': project.version, 'Specification-Vendor': 'Hibernate.org', 'Implementation-Title': project.name, 'Implementation-Version': project.version, 'Implementation-Vendor': 'Hibernate.org', 'Implementation-Vendor-Id': 'org.hibernate', 'Implementation-Url': 'http://hibernate.org/orm', // Hibernate-specific JAR manifest attributes 'Hibernate-VersionFamily': project.ormVersion.family, 'Hibernate-JpaVersion': project.jpaVersion.name ) } archiveClassifier.set( 'sources' ) } task javadocJar(type: Jar) { from project.tasks.javadoc.outputs manifest { attributes( // Basic JAR manifest attributes 'Specification-Title': project.name, 'Specification-Version': project.version, 'Specification-Vendor': 'Hibernate.org', 'Implementation-Title': project.name, 'Implementation-Version': project.version, 'Implementation-Vendor': 'Hibernate.org', 'Implementation-Vendor-Id': 'org.hibernate', 'Implementation-Url': 'http://hibernate.org/orm', // Hibernate-specific JAR manifest attributes 'Hibernate-VersionFamily': project.ormVersion.family, 'Hibernate-JpaVersion': project.jpaVersion.name ) } archiveClassifier.set( 'javadoc' ) } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Javadoc apply from: rootProject.file( 'gradle/javadoc.gradle' ) javadoc { doFirst { // ordering problems if we try to do this during config phase :( classpath += project.sourceSets.main.output.classesDirs + project.sourceSets.main.compileClasspath + project.configurations.provided } } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Publishing publishing { publications { publishedArtifacts { from components.java artifact( sourcesJar ) { // todo : do these really need to be specified twice? classifier 'sources' } artifact( javadocJar ) { // todo : do these really need to be specified twice? classifier "javadoc" } } } } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Relocation for the published artifacts based on the old groupId publishing { publications { relocationArtifacts( MavenPublication ) { pom { name = project.name + ' - relocation' groupId = 'org.hibernate' artifactId = project.name version = project.version description = project.description url = 'http://hibernate.org/orm' organization { name = 'Hibernate.org' url = 'http://hibernate.org' } licenses { license { name = 'GNU Library General Public License v2.1 or later' url = 'http://www.opensource.org/licenses/LGPL-2.1' comments = 'See discussion at http://hibernate.org/community/license/ for more details.' distribution = 'repo' } } scm { url = 'http://github.com/hibernate/hibernate-orm' connection = 'scm:git:http://github.com/hibernate/hibernate-orm.git' developerConnection = 'scm:git:git@github.com:hibernate/hibernate-orm.git' } developers { developer { id = 'hibernate-team' name = 'The Hibernate Development Team' organization = 'Hibernate.org' organizationUrl = 'http://hibernate.org' } } issueManagement { system = 'jira' url = 'https://hibernate.atlassian.net/browse/HHH' } distributionManagement { relocation { groupId = 'org.hibernate.orm' artifactId = project.name version = project.version } } } } } } task ciBuild( dependsOn: [test, publish] ) task release( dependsOn: [test, bintrayUpload] ) bintrayUpload.mustRunAfter test afterEvaluate { Project project -> project.rootProject.subprojects { Project subproject -> // NOTE : we want this even when `project == subproject` project.tasks.bintrayUpload.dependsOn( subproject.tasks.build ) } }