hibernate-orm/build.gradle

151 lines
4.8 KiB
Groovy
Raw Normal View History

/*
* 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>.
*/
buildscript {
repositories {
2018-05-24 06:55:51 -04:00
mavenCentral()
}
dependencies {
classpath 'org.hibernate.build.gradle:version-injection-plugin:1.0.0'
classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.7'
2019-11-08 12:05:09 -05:00
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
2021-12-02 05:50:31 -05:00
classpath 'de.thetaphi:forbiddenapis:3.2'
2019-05-21 17:29:57 -04:00
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.1'
}
2010-10-08 21:20:10 -04:00
}
plugins {
id 'org.hibernate.build.xjc-jakarta' version '1.0.2' apply false
id 'org.hibernate.matrix-test' version '3.1.1' apply false
id 'org.hibernate.orm.database-service' version '1.0.0-SNAPSHOT' apply false
id 'io.github.gradle-nexus.publish-plugin' version '1.1.0'
id 'nu.studer.credentials' version '2.1'
id 'idea'
id 'org.jetbrains.gradle.plugin.idea-ext' version '1.0'
id 'eclipse'
}
apply from: file( 'gradle/module.gradle' )
2013-12-02 21:53:19 -05:00
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Release Task
2010-10-08 21:20:10 -04:00
task release {
description = "The task performed when we are performing a release build. Relies on " +
"the fact that subprojects will appropriately define a release task " +
"themselves if they have any release-related activities to perform"
doFirst {
def javaVersionsInUse = [gradle.ext.javaVersions.main.compiler, gradle.ext.javaVersions.main.release,
gradle.ext.javaVersions.test.compiler, gradle.ext.javaVersions.test.release,
gradle.ext.javaVersions.test.launcher].toSet()
if ( javaVersionsInUse != [JavaLanguageVersion.of( 11 )].toSet() ) {
throw new IllegalStateException( "Please use JDK 11 to perform the release. Currently using: ${javaVersionsInUse}" )
}
}
}
2017-08-17 07:04:39 -04:00
2018-02-01 14:19:08 -05:00
task publish {
description = "The task performed when we want to just publish maven artifacts. Relies on " +
"the fact that subprojects will appropriately define a release task " +
"themselves if they have any publish-related activities to perform"
2018-02-01 14:19:08 -05:00
}
ext {
// look for command-line overrides of the username/password pairs for publishing
if ( project.hasProperty( 'hibernatePublishUsername' ) ) {
if ( ! project.hasProperty( 'hibernatePublishPassword' ) ) {
throw new GradleException( "Should specify both `hibernatePublishUsername` and `hibernatePublishPassword` as project properties" );
}
credentials.hibernatePublishUsername = project.property( 'hibernatePublishUsername' )
credentials.hibernatePublishPassword = project.property( 'hibernatePublishPassword' )
}
else if ( System.properties.hibernatePublishUsername != null ) {
if ( System.properties.hibernatePublishPassword == null ) {
throw new GradleException( "Should specify both `hibernatePublishUsername` and `hibernatePublishPassword` as system properties" );
}
credentials.hibernatePublishUsername = System.properties.hibernatePublishUsername
credentials.hibernatePublishPassword = System.properties.hibernatePublishPassword
}
2021-05-14 17:47:30 -04:00
}
2021-05-14 17:47:30 -04:00
nexusPublishing {
repositories {
sonatype {
username = credentials.hibernatePublishUsername
password = credentials.hibernatePublishPassword
2021-05-14 17:47:30 -04:00
}
}
}
gradle.taskGraph.addTaskExecutionGraphListener(
new TaskExecutionGraphListener() {
@Override
void graphPopulated(TaskExecutionGraph graph) {
2021-05-14 17:47:30 -04:00
String[] tasksToLookFor = [
'publish',
'publishToSonatype',
'publishAllPublicationsToSonatype',
'publishPublishedArtifactsPublicationToSonatypeRepository',
'publishRelocationArtifactsPublicationToSonatypeRepository',
]
for ( String taskToLookFor : tasksToLookFor ) {
if ( graph.hasTask( taskToLookFor ) ) {
// trying to publish - make sure the needed credentials are available
2021-05-14 17:47:30 -04:00
if ( credentials.hibernatePublishUsername == null ) {
2021-05-14 17:47:30 -04:00
throw new GradleException( "Publishing credentials not specified" );
}
if ( credentials.hibernatePublishPassword == null ) {
2021-05-14 17:47:30 -04:00
throw new GradleException( "Publishing credentials not specified" );
}
break;
}
}
}
}
)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// CI Build Task
task ciBuild {
description = "The task performed when one of the 'main' jobs are triggered on the " +
"CI server. Just as above, relies on the fact that subprojects will " +
"appropriately define a release task themselves if they have any tasks " +
"which should be performed from these CI jobs"
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Misc...
wrapper {
2019-10-21 12:48:17 -04:00
// To upgrade the version of gradle used in the wrapper, run:
// ./gradlew wrapper --gradle-version NEW_VERSION
distributionType = Wrapper.DistributionType.ALL
}
2013-12-02 21:53:19 -05:00
2019-05-21 17:29:57 -04:00
idea {
module {
name = "hibernate-orm"
}
}
2013-11-21 14:46:03 -05:00