/* * 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 . */ buildscript { // repositories { // mavenCentral() // } dependencies { // classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.7' classpath buildscriptLibs.forbiddenapis classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.1' } } plugins { id 'org.hibernate.build.xjc-jakarta' version '2.0.3' apply false id "org.hibernate.build.version-injection" version "2.0.0" apply false id 'org.hibernate.matrix-test' version '3.1.1' apply false id 'org.hibernate.orm.database-service' apply false id 'biz.aQute.bnd' version '7.0.0' apply false id 'com.diffplug.spotless' version '6.25.0' id 'org.checkerframework' version '0.6.40' id 'org.hibernate.orm.build.jdks' id 'io.github.gradle-nexus.publish-plugin' version '2.0.0' id 'idea' id 'org.jetbrains.gradle.plugin.idea-ext' version '1.0' id 'eclipse' id "com.dorongold.task-tree" version "2.1.1" } apply from: file( 'gradle/module.gradle' ) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Release Task 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 = jdkVersions.allVersions if ( javaVersionsInUse != [JavaLanguageVersion.of( 11 )].toSet() ) { throw new IllegalStateException( "Please use JDK 11 to perform the release. Currently using: ${javaVersionsInUse}" ) } } } 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" } def ossrhUsername = extractPropertyOrSetting( "OSSRH_USER" ) def ossrhPassword = extractPropertyOrSetting( "OSSRH_PASSWORD" ) String extractPropertyOrSetting(String name) { if ( project.hasProperty( name) ) { return project.property( name ) } def sysProp = System.getProperty( name ) if ( sysProp != null ) { return sysProp } def envProp = System.getenv( name ) if ( envProp != null ) { return envProp } return null } nexusPublishing { repositories { sonatype { username = ossrhUsername password = ossrhPassword } } } gradle.taskGraph.addTaskExecutionGraphListener( new TaskExecutionGraphListener() { @Override void graphPopulated(TaskExecutionGraph graph) { for ( final def task in graph.allTasks ) { if ( task instanceof PublishToMavenRepository ) { if ( ossrhUsername == null ) { throw new RuntimeException( "OSSRH username not specified, but publishing was requested" ) } if ( ossrhPassword == null ) { throw new RuntimeException( "OSSRH password not specified, but publishing was requested" ) } 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 { // To upgrade the version of gradle used in the wrapper, run: // ./gradlew wrapper --gradle-version NEW_VERSION // uncomment locally if you need to debug build scripts. // in such cases, having the sources helps //distributionType = Wrapper.DistributionType.ALL } idea { module { name = "hibernate-orm" } }