diff --git a/spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/repackage/RepackageTask.java b/spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/repackage/RepackageTask.java index 9125875590a..7f5e5b56140 100644 --- a/spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/repackage/RepackageTask.java +++ b/spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/repackage/RepackageTask.java @@ -18,6 +18,8 @@ package org.springframework.boot.gradle.repackage; import java.io.File; import java.io.IOException; +import java.util.HashSet; +import java.util.Set; import java.util.concurrent.TimeUnit; import org.gradle.api.Action; @@ -139,15 +141,22 @@ public class RepackageTask extends DefaultTask { private boolean isTaskMatch(Jar task, Object withJarTask) { if (withJarTask == null) { - return isDefaultJarTask(task); + if ("".equals(task.getClassifier())) { + Set tasksWithCustomRepackaging = new HashSet(); + for (RepackageTask repackageTask : RepackageTask.this.getProject() + .getTasks().withType(RepackageTask.class)) { + if (repackageTask.getWithJarTask() != null) { + tasksWithCustomRepackaging + .add(repackageTask.getWithJarTask()); + } + } + return !tasksWithCustomRepackaging.contains(task); + } + return false; } return task.equals(withJarTask) || task.getName().equals(withJarTask); } - private boolean isDefaultJarTask(Jar jarTask) { - return "jar".equals(jarTask.getName()); - } - private void repackage(File file) { File outputFile = RepackageTask.this.outputFile; if (outputFile != null && !file.equals(outputFile)) {