From 92b46bca5baf71630af4c08259071a2b53246736 Mon Sep 17 00:00:00 2001 From: Steve Ebersole Date: Tue, 15 Mar 2022 09:39:07 -0500 Subject: [PATCH] Gradle build clean-ups - drop use of `allprojects` --- build.gradle | 36 ++------------------- gradle/gradle-enterprise.gradle | 27 +++++++++++++++- gradle/jakarta-java-module.gradle | 30 ----------------- gradle/java-module.gradle | 3 ++ gradle/module.gradle | 9 ++++++ gradle/published-jakarta-java-module.gradle | 34 ------------------- settings.gradle | 18 +++++++++-- 7 files changed, 56 insertions(+), 101 deletions(-) delete mode 100644 gradle/jakarta-java-module.gradle create mode 100644 gradle/module.gradle delete mode 100644 gradle/published-jakarta-java-module.gradle diff --git a/build.gradle b/build.gradle index 994c318338..e46c5aab6a 100644 --- a/build.gradle +++ b/build.gradle @@ -33,27 +33,7 @@ plugins { id 'eclipse' } -allprojects { - repositories { - mavenCentral() - //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}" - } - } - } - - apply from: rootProject.file( 'gradle/base-information.gradle' ) - apply plugin: 'org.hibernate.orm.database-service' - - apply plugin: 'idea' - apply plugin: 'eclipse' - - // minimize changes, at least for now (gradle uses 'build' by default).. - buildDir = "target" -} +apply from: file( 'gradle/module.gradle' ) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -77,7 +57,7 @@ task release { 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 release-related activities to perform" + "themselves if they have any publish-related activities to perform" } ext { @@ -161,18 +141,6 @@ wrapper { idea { -// project { -// jdkName = gradle.ext.baselineJavaVersion -// languageLevel = gradle.ext.baselineJavaVersion -// -// vcs = 'Git' -// -// settings { -// taskTriggers { -// afterSync tasks.getByName("projects"), tasks.getByName("tasks") -// } -// } -// } module { name = "hibernate-orm" } diff --git a/gradle/gradle-enterprise.gradle b/gradle/gradle-enterprise.gradle index 9df77b9a31..700b0618af 100644 --- a/gradle/gradle-enterprise.gradle +++ b/gradle/gradle-enterprise.gradle @@ -9,7 +9,32 @@ // Applies details for `https://ge.hibernate.org` // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -apply from: file( 'system-information.gradle' ) +ext { + isCiEnvironment = isJenkins() || isGitHubActions() || isGenericCi() + populateRemoteBuildCache = getSetting( "POPULATE_REMOTE" ).isPresent() +} + +private static boolean isJenkins() { + return getSetting( "JENKINS_URL" ).isPresent() +} + +private static boolean isGitHubActions() { + return getSetting( "GITHUB_ACTIONS" ).isPresent() +} + +private static boolean isGenericCi() { + return System.getenv("CI") != null || System.getProperty("CI") != null +} + +static java.util.Optional getSetting(String name) { + def envVar = System.getenv(name) + if ( envVar != null ) { + return java.util.Optional.of(envVar); + } + + def sysProp = System.getProperty(name) + return java.util.Optional.ofNullable(sysProp); +} gradleEnterprise { server = 'https://ge.hibernate.org' diff --git a/gradle/jakarta-java-module.gradle b/gradle/jakarta-java-module.gradle deleted file mode 100644 index 75920645ad..0000000000 --- a/gradle/jakarta-java-module.gradle +++ /dev/null @@ -1,30 +0,0 @@ - -/* - * 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 plugin: 'org.hibernate.orm.jakarta' - -apply from: rootProject.file( 'gradle/libraries.gradle' ) -apply from: rootProject.file( 'gradle/databases.gradle' ) -apply plugin: 'org.hibernate.orm.database-service' -apply plugin: 'build-dashboard' -apply plugin: 'project-report' - -configurations { - jakartaeeTransformTool { - description = 'JakartaTransformer tool dependencies' - } -} - -dependencies { - jakartaeeTransformTool 'org.eclipse.transformer:org.eclipse.transformer:0.2.0' - jakartaeeTransformTool 'org.eclipse.transformer:org.eclipse.transformer.cli:0.2.0' -} - -tasks.withType( Test ) { test -> - test.usesService( project.gradle.sharedServices.registrations.getByName( 'databaseService' ).service ) -} - diff --git a/gradle/java-module.gradle b/gradle/java-module.gradle index f1dbd87ecb..f689375e28 100644 --- a/gradle/java-module.gradle +++ b/gradle/java-module.gradle @@ -21,9 +21,12 @@ buildscript { import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis import org.apache.tools.ant.filters.ReplaceTokens +apply from: rootProject.file( 'gradle/module.gradle' ) apply from: rootProject.file( 'gradle/libraries.gradle' ) apply from: rootProject.file( 'gradle/databases.gradle' ) +apply plugin: 'org.hibernate.orm.database-service' + apply plugin: 'java-library' apply plugin: 'org.hibernate.orm.database-service' diff --git a/gradle/module.gradle b/gradle/module.gradle new file mode 100644 index 0000000000..64a624bab6 --- /dev/null +++ b/gradle/module.gradle @@ -0,0 +1,9 @@ +// Applied to all projects + +apply from: rootProject.file( 'gradle/base-information.gradle' ) + +apply plugin: 'idea' +apply plugin: 'eclipse' + +// minimize changes, at least for now (gradle uses 'build' by default).. +buildDir = "target" \ No newline at end of file diff --git a/gradle/published-jakarta-java-module.gradle b/gradle/published-jakarta-java-module.gradle deleted file mode 100644 index d23fb9ec43..0000000000 --- a/gradle/published-jakarta-java-module.gradle +++ /dev/null @@ -1,34 +0,0 @@ - -/* - * 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/jakarta-java-module.gradle' ) -apply from: rootProject.file( 'gradle/publishing-pom.gradle' ) -apply plugin: 'org.hibernate.orm.jakarta-publish' - -publishing { - publications { - publishedArtifacts { - from components.jakarta - } - } -} - -//java { -// withJavadocJar() -// withSourcesJar() -//} - - -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Release / publishing tasks - -task ciBuild( dependsOn: [test, publish] ) - -task release(dependsOn: [test, publishToSonatype]) -publishToSonatype.mustRunAfter test - - diff --git a/settings.gradle b/settings.gradle index 3ae8c87c32..7865bda36d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -20,9 +20,21 @@ plugins { id 'com.gradle.common-custom-user-data-gradle-plugin' version '1.4.2' } -rootProject.name = 'hibernate-orm' +dependencyResolutionManagement { + repositories { + mavenCentral() -includeBuild('hibernate-orm-build') + //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}" + } + } + } +} + +rootProject.name = 'hibernate-orm' apply from: file( 'gradle/gradle-enterprise.gradle' ) @@ -115,6 +127,8 @@ else { logger.lifecycle "Java versions for main code: " + gradle.ext.javaVersions.main logger.lifecycle "Java versions for tests: " + gradle.ext.javaVersions.test +includeBuild('hibernate-orm-build') + include 'hibernate-core' include 'hibernate-testing'