diff --git a/src/main/java/org/moddingx/modgradle/plugins/meta/delegate/ModArtifactsConfig.java b/src/main/java/org/moddingx/modgradle/plugins/meta/delegate/ModArtifactsConfig.java index caa2614..4709e09 100644 --- a/src/main/java/org/moddingx/modgradle/plugins/meta/delegate/ModArtifactsConfig.java +++ b/src/main/java/org/moddingx/modgradle/plugins/meta/delegate/ModArtifactsConfig.java @@ -8,7 +8,10 @@ public class ModArtifactsConfig { @Nullable public ArtifactConfig sources = null; @Nullable public ArtifactConfig javadoc = null; - + public String mainJarTaskName = "jar"; + public String jarClassifier = ""; + public String jarJarClassifier = "all"; + public Delegate delegate() { return new Delegate(); } @@ -40,6 +43,18 @@ public void javadoc(@DelegatesTo(value = ArtifactConfig.Delegate.class, strategy } ModConfig.configure(closure, ModArtifactsConfig.this.javadoc.delegate()); } + + public void useJarJar() { + this.useJarJar(false); + } + + public void useJarJar(boolean switchClassifier) { + ModArtifactsConfig.this.mainJarTaskName = "jarJar"; + if (switchClassifier) { + ModArtifactsConfig.this.jarClassifier = "thin"; + ModArtifactsConfig.this.jarJarClassifier = ""; + } + } } public static class ArtifactConfig { diff --git a/src/main/java/org/moddingx/modgradle/plugins/meta/setup/ModArtifactSetup.java b/src/main/java/org/moddingx/modgradle/plugins/meta/setup/ModArtifactSetup.java index a976c2b..a5bdd06 100644 --- a/src/main/java/org/moddingx/modgradle/plugins/meta/setup/ModArtifactSetup.java +++ b/src/main/java/org/moddingx/modgradle/plugins/meta/setup/ModArtifactSetup.java @@ -16,8 +16,18 @@ public class ModArtifactSetup { public static ConfiguredArtifacts configureBuild(ModContext mod, ModArtifactsConfig config) { BuildableArtifact sourceArtifact = null; BuildableArtifact javadocArtifact = null; - TaskProvider jar = mod.project().getTasks().named("jar", Jar.class); + mod.project().getTasks().withType(Jar.class).configureEach(task -> { + String taskName = task.getName(); + if (taskName.equals("jar")) { + task.getArchiveClassifier().convention(config.jarClassifier); + } else if (taskName.equals("jarJar")) { + task.getArchiveClassifier().convention(config.jarJarClassifier); + } + }); + String mainJarTaskName = config.mainJarTaskName; + TaskProvider jar = mod.project().getTasks().named(mainJarTaskName, Jar.class); TaskProvider build = mod.project().getTasks().named("build"); + build.configure(task -> task.dependsOn(jar)); if (config.sources != null) { TaskProvider sourceJarTask = mod.project().getTasks().register("sourcesJar", Jar.class, task -> { task.setGroup("build");