diff --git a/build-tools-internal/src/main/groovy/elasticsearch.ide.gradle b/build-tools-internal/src/main/groovy/elasticsearch.ide.gradle index eb3a529498fa7..60ae4d58f343e 100644 --- a/build-tools-internal/src/main/groovy/elasticsearch.ide.gradle +++ b/build-tools-internal/src/main/groovy/elasticsearch.ide.gradle @@ -166,7 +166,7 @@ if (providers.systemProperty('idea.active').getOrNull() == 'true') { tasks.register('buildDependencyArtifacts') { group = 'ide' description = 'Builds artifacts needed as dependency for IDE modules' - dependsOn([':plugins:repository-hdfs:hadoop-client-api:shadowJar', + dependsOn([':plugins:repository-hdfs:hadoop-client-api:jar', ':x-pack:plugin:esql:compute:ann:jar', ':x-pack:plugin:esql:compute:gen:jar', ':server:generateModulesList', diff --git a/plugins/repository-hdfs/hadoop-client-api/build.gradle b/plugins/repository-hdfs/hadoop-client-api/build.gradle index c20d391e6bedd..c156e44d2f06f 100644 --- a/plugins/repository-hdfs/hadoop-client-api/build.gradle +++ b/plugins/repository-hdfs/hadoop-client-api/build.gradle @@ -21,22 +21,27 @@ dependencies { def outputDir = layout.buildDirectory.dir("patched-classes") -def patchTask = tasks.register("patchClasses", JavaExec) -patchTask.configure { - dependsOn configurations.thejar, sourceSets.patcher.getCompileJavaTaskName() +def patchTask = tasks.register("patchClasses", JavaExec) { + inputs.files(configurations.thejar).withPathSensitivity(PathSensitivity.RELATIVE) + inputs.files(sourceSets.patcher.output).withPathSensitivity(PathSensitivity.RELATIVE) outputs.dir(outputDir) classpath = sourceSets.patcher.runtimeClasspath mainClass = 'org.elasticsearch.hdfs.patch.HdfsClassPatcher' doFirst { - args configurations.thejar.singleFile, outputDir.get().getAsFile().toString() + args(configurations.thejar.singleFile, outputDir.get().asFile) } } tasks.named('jar').configure { dependsOn(patchTask) dependsOn(configurations.thejar) - duplicatesStrategy = DuplicatesStrategy.EXCLUDE - from(outputDir) // patch directory first so any files patched are excluded as duplicates - from(project.zipTree(configurations.thejar.singleFile)) + from(outputDir) + from({ project.zipTree(configurations.thejar.singleFile) }) { + eachFile { + if (outputDir.get().file(it.relativePath.pathString).asFile.exists()) { + it.exclude() + } + } + } }