|
26 | 26 |
|
27 | 27 | import org.checkerframework.checker.nullness.qual.MonotonicNonNull; |
28 | 28 | import org.gradle.api.Action; |
29 | | -import org.gradle.api.NamedDomainObjectCollection; |
30 | 29 | import org.gradle.api.NamedDomainObjectContainer; |
31 | 30 | import org.gradle.api.NamedDomainObjectProvider; |
32 | 31 | import org.gradle.api.Plugin; |
|
38 | 37 | import org.gradle.api.artifacts.component.ModuleComponentIdentifier; |
39 | 38 | import org.gradle.api.artifacts.result.ResolvedArtifactResult; |
40 | 39 | import org.gradle.api.file.Directory; |
41 | | -import org.gradle.api.file.DirectoryProperty; |
42 | 40 | import org.gradle.api.file.FileCollection; |
43 | 41 | import org.gradle.api.plugins.JavaLibraryPlugin; |
44 | 42 | import org.gradle.api.plugins.JavaPlugin; |
|
48 | 46 | import org.gradle.api.tasks.SourceSet; |
49 | 47 | import org.gradle.api.tasks.SourceSetContainer; |
50 | 48 | import org.gradle.api.tasks.TaskProvider; |
51 | | -import org.gradle.jvm.tasks.Jar; |
| 49 | +import org.gradle.api.tasks.bundling.AbstractArchiveTask; |
52 | 50 | import org.gradle.process.CommandLineArgumentProvider; |
53 | 51 | import org.spongepowered.gradle.common.Constants; |
54 | 52 | import org.spongepowered.gradle.common.SpongePlatform; |
@@ -221,13 +219,18 @@ public void execute(final Task a) { |
221 | 219 | }); |
222 | 220 | }); |
223 | 221 |
|
224 | | - this.project.getPlugins().withType(JavaPlugin.class, v -> { |
225 | | - // TODO: Use shadow jar here if that plugin is applied |
226 | | - final TaskProvider<?> jarTask = this.project.getTasks().named(JavaPlugin.JAR_TASK_NAME); |
| 222 | + this.project.afterEvaluate(p -> { |
| 223 | + final TaskProvider<AbstractArchiveTask> archiveTask; |
| 224 | + if (p.getPlugins().hasPlugin(Constants.Plugins.SHADOW_PLUGIN_ID)) { |
| 225 | + archiveTask = p.getTasks().named(Constants.Plugins.SHADOW_JAR_TASK_NAME, AbstractArchiveTask.class); |
| 226 | + } else { |
| 227 | + archiveTask = p.getTasks().named(JavaPlugin.JAR_TASK_NAME, AbstractArchiveTask.class); |
| 228 | + } |
227 | 229 | runServer.configure(new Action<JavaExec>() { |
228 | 230 | @Override |
229 | 231 | public void execute(final JavaExec it) { |
230 | | - it.classpath(jarTask); |
| 232 | + it.dependsOn(archiveTask); |
| 233 | + it.classpath(archiveTask.map(AbstractArchiveTask::getArchiveFile)); |
231 | 234 | } |
232 | 235 | }); // TODO: is there a sensible way to run without the jar? |
233 | 236 | }); |
|
0 commit comments