hibernate-orm/settings.gradle

374 lines
19 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>.
*/
pluginManagement {
repositories {
gradlePluginPortal()
maven {
name = 'localPluginRepository'
url = uri( "${gradle.gradleUserHomeDir}/tmp/plugins" )
}
}
includeBuild 'local-build-plugins'
}
plugins {
id 'org.hibernate.orm.build.env-settings'
id 'org.hibernate.orm.build.jdks-settings'
id 'com.gradle.develocity' version '3.17.6'
id 'com.gradle.common-custom-user-data-gradle-plugin' version '2.0.2'
}
dependencyResolutionManagement {
repositories {
if ( rootProject.hasProperty( "mavenMirror" ) ) {
url( rootProject.property( "mavenMirror" ) )
}
mavenCentral()
if (System.getProperty('JPA_PREVIEW') != null) {
maven {
url "https://jakarta.oss.sonatype.org/content/repositories/releases/"
}
// Needed for the SNAPSHOT versions of Jakarta Persistence
maven {
url "https://jakarta.oss.sonatype.org/content/repositories/snapshots/"
}
}
mavenLocal()
//Allow loading additional dependencies from a local path;
//useful to load JDBC drivers which can not be distributed in public.
if (System.env['ADDITIONAL_REPO'] != null) {
flatDir {
dirs "${System.env.ADDITIONAL_REPO}"
}
}
}
pluginManagement {
repositories {
gradlePluginPortal()
}
}
versionCatalogs {
jdks {
// see gradle.properties (or set with -D/-P)
var String baseJdk = jdkVersions.baseline
var String maxJdk = jdkVersions.max
version "baseline", baseJdk
version "compatible", "17 or 21"
version "jdbc", "4.2" // Bundled with JDK 11
// Gradle does bytecode transformation on tests.
// You can't use bytecode higher than what Gradle supports, even with toolchains.
version "maxSupportedBytecode", maxJdk
}
libs {
def antlrVersion = version "antlr", "4.13.0"
def byteBuddyVersion = version "byteBuddy", "1.14.18"
def classmateVersion = version "classmate", "1.5.1"
def geolatteVersion = version "geolatte", "1.9.1"
def hibernateModelsVersion = version "hibernateModels", "0.9.1"
def jandexVersion = version "jandex", "3.2.0"
def jacksonVersion = version "jackson", "2.17.0"
def jbossLoggingVersion = version "jbossLogging", "3.6.0.Final"
def jbossLoggingToolVersion = version "jbossLoggingTool", "3.0.2.Final"
def agroalVersion = version "agroal", "2.0"
def c3poVersion = version"c3p0", "0.9.5.5"
def hikaricpVersion = version "hikaricp", "3.2.0"
def proxoolVersion = version "proxool", "0.8.3"
def viburVersion = version "vibur", "25.0"
def ucpVersion = version "ucp", "23.4.0.24.05"
def jcacheVersion = version "jcache", "1.0.0"
def ehcache3Version = version "ehcache3", "3.10.8"
def micrometerVersion = version "micrometer", "1.10.4"
def hibernateValidatorVersion = version "hibernateValidator", "8.0.0.Final"
library( "antlr", "org.antlr", "antlr4" ).versionRef( antlrVersion )
library( "antlrRuntime", "org.antlr", "antlr4-runtime" ).versionRef( antlrVersion)
library( "byteBuddy", "net.bytebuddy", "byte-buddy" ).versionRef( byteBuddyVersion )
library( "byteBuddyAgent", "net.bytebuddy", "byte-buddy-agent" ).versionRef( byteBuddyVersion )
library( "logging", "org.jboss.logging", "jboss-logging" ).versionRef( jbossLoggingVersion )
library( "loggingAnnotations", "org.jboss.logging", "jboss-logging-annotations" ).versionRef( jbossLoggingToolVersion )
library( "loggingProcessor", "org.jboss.logging", "jboss-logging-processor" ).versionRef( jbossLoggingToolVersion )
library( "hibernateModels", "org.hibernate.models", "hibernate-models" ).versionRef( hibernateModelsVersion )
library( "hibernateModelsJandex", "org.hibernate.models", "hibernate-models-jandex" ).versionRef( hibernateModelsVersion )
library( "jandex", "io.smallrye", "jandex" ).versionRef( jandexVersion )
library( "classmate", "com.fasterxml", "classmate" ).versionRef( classmateVersion )
library( "jackson", "com.fasterxml.jackson.core", "jackson-databind" ).versionRef( jacksonVersion )
library( "jacksonXml", "com.fasterxml.jackson.dataformat", "jackson-dataformat-xml" ).versionRef( jacksonVersion )
library( "jacksonJsr310", "com.fasterxml.jackson.datatype", "jackson-datatype-jsr310" ).versionRef( jacksonVersion )
library( "validator", "org.hibernate.validator", "hibernate-validator" ).versionRef( hibernateValidatorVersion )
library( "agroal", "io.agroal", "agroal-api" ).versionRef( agroalVersion )
library( "agroalPool", "io.agroal", "agroal-pool" ).versionRef( agroalVersion )
library( "c3p0", "com.mchange", "c3p0" ).versionRef( c3poVersion )
library( "hikaricp", "com.zaxxer", "HikariCP" ).versionRef( hikaricpVersion )
library( "proxool", "proxool", "proxool" ).versionRef( proxoolVersion )
library( "vibur", "org.vibur", "vibur-dbcp" ).versionRef( viburVersion )
library( "ucp", "com.oracle.database.jdbc", "ucp11" ).versionRef( ucpVersion )
library( "ojdbc11", "com.oracle.database.jdbc", "ojdbc11" ).versionRef( ucpVersion )
library( "geolatte", "org.geolatte", "geolatte-geom" ).versionRef( geolatteVersion )
library( "jcache", "javax.cache", "cache-api" ).versionRef( jcacheVersion )
library( "ehcache3", "org.ehcache", "ehcache" ).versionRef( ehcache3Version )
library( "micrometer", "io.micrometer", "micrometer-core" ).versionRef( micrometerVersion )
library( "ant", "org.apache.ant", "ant" ).version( "1.8.2" )
}
jakartaLibs {
// `jakartaJpaVersion` comes from the local-build-plugins to allow for command-line overriding of the JPA version to use
def jpaVersion = version "jpa", "${jakartaJpaVersion}"
def annotationVersion = version "annotation", "2.1.1"
def cdiVersion = version "cdi", "4.0.1"
def elVersion = version "el", "5.0.0"
def injectVersion = version "inject", "2.0.1"
def interceptorsVersion = version "interceptors", "2.1.0"
def dataVersion = version "data", "1.0.0"
def jaccVersion = version "jacc", "2.1.0"
def jaxbApiVersion = version "jaxbApi", "4.0.0"
def jaxbRuntimeVersion = version "jaxbRuntime", "4.0.2"
def jsonbApiVersion = version "jsonbApi", "3.0.0"
def jsonbRuntimeVersion = version "jsonbRuntime", "3.0.2"
def jtaVersion = version "jta", "2.0.1"
def validationVersion = version "validation", "3.0.2"
def xjcVersion = version "jaxbRuntime", jaxbRuntimeVersion
library( "jpa", "jakarta.persistence", "jakarta.persistence-api" ).versionRef( jpaVersion )
library( "jta", "jakarta.transaction", "jakarta.transaction-api" ).versionRef( jtaVersion )
library( "validation", "jakarta.validation", "jakarta.validation-api" ).versionRef( validationVersion )
library( "jacc", "jakarta.authorization", "jakarta.authorization-api" ).versionRef( jaccVersion )
library( "cdi", "jakarta.enterprise", "jakarta.enterprise.cdi-api" ).versionRef( cdiVersion )
library( "annotation", "jakarta.annotation", "jakarta.annotation-api" ).versionRef( annotationVersion )
library( "interceptors", "jakarta.interceptor", "jakarta.interceptor-api" ).versionRef( interceptorsVersion )
library( "data", "jakarta.data", "jakarta.data-api" ).versionRef( dataVersion )
library( "jsonbApi", "jakarta.json.bind", "jakarta.json.bind-api" ).versionRef( jsonbApiVersion )
library( "jsonb", "org.eclipse", "yasson" ).versionRef( jsonbRuntimeVersion )
library( "inject", "jakarta.inject", "jakarta.inject-api" ).versionRef( injectVersion )
library( "jaxbApi", "jakarta.xml.bind", "jakarta.xml.bind-api" ).versionRef( jaxbApiVersion )
library( "jaxb", "org.glassfish.jaxb", "jaxb-runtime" ).versionRef( jaxbRuntimeVersion )
library( "xjc", "org.glassfish.jaxb", "jaxb-xjc" ).versionRef( xjcVersion )
library( "el", "org.glassfish.expressly", "expressly" ).versionRef( elVersion )
}
testLibs {
def junit5Version = version "junit5", "5.10.2"
def junit4Version = version "junit4", "4.13.2"
def junit5LauncherVersion = version "junit5Launcher", "1.10.2"
def assertjVersion = version "assertj", "3.22.0"
def bytemanVersion = version "byteman", "4.0.20"
def jbossJtaVersion = version "jbossJta", "7.0.0.Final"
def jbossTxSpiVersion = version "jbossTxSpi", "8.0.0.Final"
def log4jVersion = version "log4j", "2.17.1"
def mockitoVersion = version "mockito", "5.2.0"
//Compatible with JDK20
def shrinkwrapVersion = version "shrinkwrap", "1.2.6"
def shrinkwrapDescriptorsVersion = version "shrinkwrapDescriptors", "2.0.0"
def weldVersion = version "weld", "4.0.1.SP1"
def wildFlyTxnClientVersion = version "wildFlyTxnClient", "2.0.0.Final"
def xapoolVersion = version "xapool", "1.5.0"
def jfrUnitVersion = version "jfrUnit", "1.0.0.Alpha2"
library( "junit5Api", "org.junit.jupiter", "junit-jupiter-api" ).versionRef( junit5Version )
library( "junit5Engine", "org.junit.jupiter", "junit-jupiter-engine" ).versionRef( junit5Version )
library( "junit5Params", "org.junit.jupiter", "junit-jupiter-params" ).versionRef( junit5Version )
library( "junit4Engine", "org.junit.vintage", "junit-vintage-engine" ).versionRef( junit5Version )
library( "junit5Launcher", "org.junit.platform", "junit-platform-launcher" ).versionRef( junit5LauncherVersion )
library( "junit4", "junit", "junit" ).versionRef( junit4Version )
library( "assertjCore", "org.assertj", "assertj-core" ).versionRef( assertjVersion )
library( "assertjApi", "org.assertj", "assertj-core-api" ).versionRef( assertjVersion )
library( "log4j2", "org.apache.logging.log4j", "log4j-core" ).versionRef( log4jVersion )
library( "shrinkwrap", "org.jboss.shrinkwrap", "shrinkwrap-impl-base" ).versionRef( shrinkwrapVersion )
library( "shrinkwrapApi", "org.jboss.shrinkwrap", "shrinkwrap-api" ).versionRef( shrinkwrapVersion )
library( "shrinkwrapDescriptors", "org.jboss.shrinkwrap.descriptors", "shrinkwrap-descriptors-impl-javaee" ).versionRef( shrinkwrapDescriptorsVersion )
library( "shrinkwrapDescriptorsApi", "org.jboss.shrinkwrap.descriptors", "shrinkwrap-descriptors-api-javaee" ).versionRef( shrinkwrapDescriptorsVersion )
library( "byteman", "org.jboss.byteman", "byteman" ).versionRef( bytemanVersion )
library( "bytemanInstall", "org.jboss.byteman", "byteman-install" ).versionRef( bytemanVersion )
library( "bytemanBmunit", "org.jboss.byteman", "byteman-bmunit" ).versionRef( bytemanVersion )
library( "mockito", "org.mockito", "mockito-core" ).versionRef( mockitoVersion )
library( "mockitoInline", "org.mockito", "mockito-inline" ).versionRef( mockitoVersion )
library( "xapool", "com.experlog", "xapool" ).versionRef( xapoolVersion )
library( "jbossJta", "org.jboss.narayana.jta", "narayana-jta" ).versionRef( jbossJtaVersion )
library( "jbossTxSpi", "org.jboss", "jboss-transaction-spi" ).versionRef( jbossTxSpiVersion )
library( "wildFlyTxnClient", "org.wildfly.transaction", "wildfly-transaction-client-jakarta" ).versionRef( wildFlyTxnClientVersion )
library( "weld", "org.jboss.weld.se", "weld-se-shaded" ).versionRef( weldVersion )
library( "jfrUnit", "org.moditect.jfrunit", "jfrunit-core" ).versionRef( jfrUnitVersion )
}
dbLibs {
def h2Version = version "h2", overrideableVersion( "gradle.libs.versions.h2", "2.3.232" )
def db2Version = version "db2", "11.5.9.0"
// Latest Derby version 10.16.1.1 only supports JDK 17+, but 10.15.2 should be compatible
def derbyVersion = version "derby", overrideableVersion( "gradle.libs.versions.derby", "10.15.2.0" )
def firebirdVersion = version "firebird", "4.0.8.java11"
def hanaVersion = version "hana", "2.19.11"
def h2gisVersion = version "h2gis", overrideableVersion( "gradle.libs.versions.h2gis", "2.2.2" )
def hsqldbVersion = version "hsqldb", overrideableVersion( "gradle.libs.versions.hsqldb", "2.7.2" )
def informixVersion = version "informix", "4.50.10.1"
def mariadbVersion = version "mariadb", "3.4.0"
def mssqlVersion = version "mssql", "12.4.2.jre11"
def mysqlVersion = version "mysql", "8.2.0"
def oracleVersion = version "oracle", "23.4.0.24.05"
def oracleLegacyVersion = version "oracleLegacy", "11.2.0.4"
def pgsqlVersion = version "pgsql", "42.7.1"
def sybaseVersion = version "sybase", "1.3.1"
def tidbVersion = version "tidb", mysqlVersion
def altibaseVersion = version "altibase", "7.3.0.0.3"
library( "h2", "com.h2database", "h2" ).versionRef( h2Version )
library( "h2gis", "org.orbisgis", "h2gis" ).versionRef( h2gisVersion )
library( "hsqldb", "org.hsqldb", "hsqldb" ).versionRef( hsqldbVersion )
library( "derby", "org.apache.derby", "derby" ).versionRef( derbyVersion )
library( "derbyTools", "org.apache.derby", "derbytools" ).versionRef( derbyVersion )
library( "postgresql", "org.postgresql", "postgresql" ).versionRef( pgsqlVersion )
library( "cockroachdb", "org.postgresql", "postgresql" ).versionRef( pgsqlVersion )
library( "mysql", "com.mysql", "mysql-connector-j" ).versionRef( mysqlVersion )
library( "tidb", "com.mysql", "mysql-connector-j" ).versionRef( tidbVersion )
library( "mariadb", "org.mariadb.jdbc", "mariadb-java-client" ).versionRef( mariadbVersion )
library( "oracle", "com.oracle.database.jdbc", "ojdbc11" ).versionRef( oracleVersion )
library( "oracleXml", "com.oracle.database.xml", "xdb" ).versionRef( oracleVersion )
library( "oracleXmlParser", "com.oracle.database.xml", "xmlparserv2" ).versionRef( oracleVersion )
library( "mssql", "com.microsoft.sqlserver", "mssql-jdbc" ).versionRef( mssqlVersion )
library( "db2", "com.ibm.db2", "jcc" ).versionRef( db2Version )
library( "hana", "com.sap.cloud.db.jdbc", "ngdbc" ).versionRef( hanaVersion )
library( "sybase", "net.sourceforge.jtds", "jtds" ).versionRef( sybaseVersion )
library( "informix", "com.ibm.informix", "jdbc" ).versionRef( informixVersion )
library( "firebird", "org.firebirdsql.jdbc", "jaybird" ).versionRef( firebirdVersion )
library( "altibase", "com.altibase", "altibase-jdbc" ).versionRef( altibaseVersion )
}
mavenLibs {
def mavenCoreVersion = version "mavenCore", "3.8.1"
def mavenVersion = version "maven", "3.0.5"
def mavenPluginToolsVersion = version "mavenPluginTools", "3.2"
library( "mavenCore", "org.apache.maven", "maven-core" ).versionRef( mavenCoreVersion )
library( "mavenArtifact", "org.apache.maven", "maven-artifact" ).versionRef( mavenVersion )
library( "mavenPlugin", "org.apache.maven", "maven-plugin-api" ).versionRef( mavenVersion )
library( "mavenPluginTools", "org.apache.maven.plugin-tools", "maven-plugin-annotations" ).versionRef( mavenPluginToolsVersion )
}
buildscriptLibs {
def forbiddenapisversion = version "forbiddenapis", "3.7"
library( "forbiddenapis", "de.thetaphi", "forbiddenapis" ).versionRef( forbiddenapisversion )
}
}
}
String overrideableVersion(String settingName, String defaultVersion) {
String overridden = settings.ext.find( settingName )
if ( overridden != null ) {
return overridden
}
return defaultVersion
}
rootProject.name = 'hibernate-orm'
apply from: file( 'gradle/gradle-develocity.gradle' )
if ( !JavaVersion.current().java11Compatible ) {
throw new GradleException( "Gradle must be run with Java 11 or later" )
}
buildCache {
local {
// do not use local build cache for CI jobs, period!
enabled = !settings.ext.isCiEnvironment
}
remote(develocity.buildCache) {
enabled = settings.ext.useRemoteCache
// Check access key presence to avoid build cache errors on PR builds when access key is not present
def accessKey = System.getenv("DEVELOCITY_ACCESS_KEY")
push = settings.ext.populateRemoteBuildCache && accessKey
}
}
include 'hibernate-core'
include 'hibernate-testing'
include 'hibernate-envers'
include 'hibernate-spatial'
include 'hibernate-platform'
include 'hibernate-community-dialects'
include 'hibernate-vector'
include 'hibernate-c3p0'
include 'hibernate-proxool'
include 'hibernate-hikaricp'
include 'hibernate-vibur'
include 'hibernate-agroal'
include 'hibernate-ucp'
include 'hibernate-jcache'
include 'hibernate-micrometer'
include 'hibernate-graalvm'
include 'hibernate-integrationtest-java-modules'
include 'documentation'
include 'release'
include 'annotation-descriptor-generator'
// Not all JDK implementations support JFR
if ( "OpenJDK Runtime Environment".equals( System.getProperty( "java.runtime.name" ) ) ) {
include 'hibernate-jfr'
}
include 'hibernate-scan-jandex'
include 'metamodel-generator'
project(':metamodel-generator').projectDir = new File(rootProject.projectDir, "tooling/metamodel-generator")
project(':metamodel-generator').name = 'hibernate-processor'
include 'hibernate-gradle-plugin'
project(':hibernate-gradle-plugin').projectDir = new File(rootProject.projectDir, "tooling/hibernate-gradle-plugin")
include 'hibernate-maven-plugin'
project(':hibernate-maven-plugin').projectDir = new File(rootProject.projectDir, "tooling/hibernate-maven-plugin")
include 'hibernate-ant'
project(':hibernate-ant').projectDir = new File(rootProject.projectDir, "tooling/hibernate-ant")
rootProject.children.each { project ->
project.buildFileName = "${project.name}.gradle"
assert project.projectDir.isDirectory()
assert project.buildFile.exists()
assert project.buildFile.isFile()
}
include 'hibernate-platform'