147 lines
3.9 KiB
Groovy
147 lines
3.9 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>.
|
|
*/
|
|
|
|
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"
|
|
}
|
|
}
|