Skip to content

Commit 366bfd7

Browse files
committed
Disable transitive dependencies on tools without main classes
Make log output slightly better
1 parent 8407421 commit 366bfd7

File tree

3 files changed

+25
-18
lines changed

3 files changed

+25
-18
lines changed

gradleutils-shared/src/main/java/net/minecraftforge/gradleutils/shared/Tool.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*/
55
package net.minecraftforge.gradleutils.shared;
66

7-
import org.gradle.api.Action;
87
import org.gradle.api.Named;
98
import org.gradle.api.artifacts.ModuleVersionIdentifier;
109
import org.gradle.api.file.ConfigurableFileCollection;

gradleutils-shared/src/main/java/net/minecraftforge/gradleutils/shared/ToolExecBase.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
/// should extend from.
6767
/// @see JavaExec
6868
/// @see Tool
69+
@SuppressWarnings("unused") // Imports for javadocs
6970
public abstract class ToolExecBase<P extends EnhancedProblems> extends DefaultTask implements EnhancedTask<P> {
7071
private final P problems = this.getObjects().newInstance(this.problemsType());
7172

@@ -282,16 +283,8 @@ protected ExecResult exec() throws IOException {
282283
log.println(spec.getWorkingDir().getAbsolutePath());
283284
log.print("Main class: ");
284285
log.println(spec.getMainClass().getOrElse("AUTOMATIC"));
285-
log.println("Arguments:");
286-
for (var s : spec.getArgs()) {
287-
log.print(" ");
288-
log.println(s);
289-
}
290-
log.println("JVM Arguments:");
291-
for (var s : spec.getAllJvmArgs()) {
292-
log.print(" ");
293-
log.println(s);
294-
}
286+
logArgs(log, "Arguments: ", spec.getArgs());
287+
logArgs(log, "JVM Arguments: ", spec.getAllJvmArgs());
295288
log.println("Classpath:");
296289
for (var f : getClasspath()) {
297290
log.print(" ");
@@ -302,6 +295,21 @@ protected ExecResult exec() throws IOException {
302295
}
303296
}
304297

298+
private static void logArgs(PrintWriter log, String prefix, List<String> args) {
299+
var padding = " ".repeat(prefix.length());
300+
for (int x = 0; x < args.size(); x++) {
301+
log.print(x == 0 ? prefix : padding);
302+
var current = args.get(x);
303+
var next = args.size() > x + 1 ? args.get(x + 1) : null;
304+
var line = current;
305+
if (current.startsWith("--") && next != null && !next.startsWith("--")) {
306+
x++;
307+
line += ' ' + next;
308+
}
309+
log.println(line);
310+
}
311+
}
312+
305313
protected final void args(Object... args) {
306314
this.args(Arrays.asList(args));
307315
}

gradleutils-shared/src/main/java/net/minecraftforge/gradleutils/shared/ToolImpl.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import net.minecraftforge.util.download.DownloadUtils;
88
import net.minecraftforge.util.hash.HashStore;
9-
import org.gradle.api.artifacts.Configuration;
109
import org.gradle.api.artifacts.ModuleVersionIdentifier;
1110
import org.gradle.api.file.ConfigurableFileCollection;
1211
import org.gradle.api.file.Directory;
@@ -88,12 +87,13 @@ public Tool.Resolved get(Provider<? extends Directory> cachesDir, ProviderFactor
8887

8988
FileCollection classpathFromGradle = toolsExt.getObjects().fileCollection();
9089
var classpathFromDownload = definition.getClasspath();
90+
var mainClass = definition.getMainClass().orElse(providers.provider(this::getMainClass)).getOrNull();
9191

9292
if (classpathFromDownload.isEmpty()) {
9393
var overrides = fillOverrides(definition);
9494
classpathFromGradle = toolsExt.getProject().getConfigurations().detachedConfiguration(
9595
toolsExt.getDependencies().create(overrides.artifact)
96-
);
96+
).setTransitive(mainClass != null);
9797
classpathFromDownload = toolsExt.getObjects().fileCollection().from(
9898
providers.of(Source.class, spec -> spec.parameters(parameters -> {
9999
parameters.getInputFile().set(cachesDir.map(d -> d.file("tools/" + overrides.fileName)));
@@ -106,7 +106,7 @@ public Tool.Resolved get(Provider<? extends Directory> cachesDir, ProviderFactor
106106
toolsExt.getObjects(),
107107
classpathFromGradle,
108108
classpathFromDownload,
109-
definition.getMainClass().orElse(providers.provider(this::getMainClass)),
109+
mainClass,
110110
definition.getJavaLauncher().orElse(providers.provider(() -> SharedUtil.launcherForStrictly(toolsExt.getJavaToolchains(), this.getJavaVersion()).get()))
111111
);
112112
}
@@ -161,15 +161,15 @@ public Property<String> getArtifact() {
161161
final class ResolvedImpl implements ToolInternal.Resolved {
162162
private final FileCollection classpathFromGradle;
163163
private final FileCollection classpathFromDownload;
164-
private final Property<String> mainClass;
164+
private final @Nullable String mainClass;
165165
private final Property<JavaLauncher> javaLauncher;
166166

167167
private @Nullable Boolean useGradle = null;
168168

169-
private ResolvedImpl(ObjectFactory objects, FileCollection classpathFromGradle, FileCollection classpathFromDownload, Provider<? extends String> mainClass, Provider<? extends JavaLauncher> javaLauncher) {
169+
private ResolvedImpl(ObjectFactory objects, FileCollection classpathFromGradle, FileCollection classpathFromDownload, @Nullable String mainClass, Provider<? extends JavaLauncher> javaLauncher) {
170170
this.classpathFromGradle = classpathFromGradle;
171171
this.classpathFromDownload = classpathFromDownload;
172-
this.mainClass = objects.property(String.class).value(mainClass);
172+
this.mainClass = mainClass;
173173
this.javaLauncher = objects.property(JavaLauncher.class).value(javaLauncher);
174174
}
175175

@@ -208,7 +208,7 @@ public int getJavaVersion() {
208208

209209
@Override
210210
public @Nullable String getMainClass() {
211-
return this.mainClass.getOrNull();
211+
return this.mainClass;
212212
}
213213
}
214214

0 commit comments

Comments
 (0)