225 lines
6.1 KiB
Groovy
225 lines
6.1 KiB
Groovy
/*
|
|
* 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 )
|
|
}
|
|
}
|