This is an automated email from the ASF dual-hosted git repository.
yuqi1129 pushed a commit to branch branch-1.3
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/branch-1.3 by this push:
new 9de6415413 [Cherry-pick to branch-1.3] [#11164] improvement(build):
Clean distribution package before copying files (#11180) (#11333)
9de6415413 is described below
commit 9de64154132eb912e2a848cee48a5b840d8e3fe6
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Jun 2 14:11:06 2026 +0800
[Cherry-pick to branch-1.3] [#11164] improvement(build): Clean distribution
package before copying files (#11180) (#11333)
**Cherry-pick Information:**
- Original commit: 47033f452080d843239d6d16ccccdd6f13e44150
- Target branch: `branch-1.3`
- Status: ✅ Clean cherry-pick (no conflicts)
Co-authored-by: ningsh7 <[email protected]>
---
build.gradle.kts | 46 ++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 42 insertions(+), 4 deletions(-)
diff --git a/build.gradle.kts b/build.gradle.kts
index 2539a1d964..a80e5b54f2 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -69,6 +69,9 @@ if (scalaVersion !in listOf("2.12", "2.13")) {
}
val skipWeb: Boolean = (project.findProperty("skipWeb") as?
String)?.toBoolean() ?: false
+val distributionPackageDir =
layout.projectDirectory.dir("distribution/package")
+val distributionPackageAllDir =
layout.projectDirectory.dir("distribution/package-all")
+val subprojectJarOutputDirs = subprojects.map {
it.layout.buildDirectory.dir("libs") }
project.extra["extraJvmArgs"] =
listOf(
@@ -790,6 +793,12 @@ jacoco {
tasks {
val projectDir = layout.projectDirectory
val outputDir = projectDir.dir("distribution")
+ val cleanDistributionPackage by registering(Delete::class) {
+ group = "gravitino distribution"
+ delete(distributionPackageDir, distributionPackageAllDir)
+ delete(subprojectJarOutputDirs)
+ }
+
val compileDistribution by registering {
val dependencies =
mutableListOf(
@@ -808,10 +817,12 @@ tasks {
dependencies.add(":web:web:build")
dependencies.add(":web-v2:web:build")
}
+ dependsOn(cleanDistributionPackage)
dependsOn(dependencies)
group = "gravitino distribution"
- outputs.dir(projectDir.dir("distribution/package"))
+ outputs.dir(distributionPackageDir)
+ outputs.dir(distributionPackageAllDir)
doLast {
copy {
from(projectDir.dir("conf")) { into("package/conf") }
@@ -867,8 +878,8 @@ tasks {
// Copy the all directory distribution/package to
distribution/package-all
copy {
- from(projectDir.dir("distribution/package"))
- into(projectDir.dir("distribution/package-all"))
+ from(distributionPackageDir)
+ into(distributionPackageAllDir)
}
// remove catalogs-contrib modules from distribution/package
@@ -978,6 +989,7 @@ tasks {
val assembleDistribution by registering(Tar::class) {
dependsOn(
+ compileDistribution,
":trino-connector:trino-connector-435-439:assembleTrinoConnector",
":trino-connector:trino-connector-440-445:assembleTrinoConnector",
":trino-connector:trino-connector-446-451:assembleTrinoConnector",
@@ -990,7 +1002,7 @@ tasks {
group = "gravitino distribution"
finalizedBy("checksumDistribution")
into("${rootProject.name}-$version-bin")
- from(compileDistribution.map { it.outputs.files.single() })
+ from(distributionPackageDir)
compression = Compression.GZIP
archiveFileName.set("${rootProject.name}-$version-bin.tar.gz")
destinationDirectory.set(projectDir.dir("distribution"))
@@ -1210,6 +1222,32 @@ tasks {
}
}
+gradle.projectsEvaluated {
+ val cleanDistributionPackageTask =
rootProject.tasks.named("cleanDistributionPackage")
+ val distributionPackagePaths =
+ listOf(distributionPackageDir, distributionPackageAllDir)
+ .map { it.asFile.toPath().toAbsolutePath().normalize() }
+ val subprojectJarOutputPaths =
+ subprojectJarOutputDirs.map {
it.get().asFile.toPath().toAbsolutePath().normalize() }
+
+ allprojects {
+ tasks.withType<Jar>().configureEach {
+ mustRunAfter(cleanDistributionPackageTask)
+ }
+
+ tasks.withType<Copy>().configureEach {
+ val copyDestinationDir = destinationDir ?: return@configureEach
+ val destinationPath =
copyDestinationDir.toPath().toAbsolutePath().normalize()
+ if (distributionPackagePaths.any { destinationPath.startsWith(it) }) {
+ dependsOn(cleanDistributionPackageTask)
+ }
+ if (subprojectJarOutputPaths.any { destinationPath.startsWith(it) }) {
+ mustRunAfter(cleanDistributionPackageTask)
+ }
+ }
+ }
+}
+
apply(plugin = "com.dorongold.task-tree")
project.extra["dockerTest"] = false