Skip to content

Commit 21bc1ef

Browse files
committed
Fix gradle emitDependencies task cache
Partially revert what I deleted in 2636070
1 parent 37a4757 commit 21bc1ef

File tree

1 file changed

+34
-11
lines changed

1 file changed

+34
-11
lines changed

build-logic/src/main/java/org/spongepowered/gradle/impl/OutputDependenciesToJson.java

+34-11
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.gradle.api.tasks.Input;
4141
import org.gradle.api.tasks.Internal;
4242
import org.gradle.api.tasks.Nested;
43+
import org.gradle.api.tasks.Optional;
4344
import org.gradle.api.tasks.OutputFile;
4445
import org.gradle.api.tasks.TaskAction;
4546

@@ -49,6 +50,7 @@
4950
import java.nio.file.Files;
5051
import java.security.MessageDigest;
5152
import java.security.NoSuchAlgorithmException;
53+
import java.util.Collections;
5254
import java.util.Comparator;
5355
import java.util.HashSet;
5456
import java.util.List;
@@ -108,6 +110,10 @@ public final void dependencies(final String key, final NamedDomainObjectProvider
108110
@Internal
109111
public abstract SetProperty<ResolvedArtifactResult> getExcludedDependencies();
110112

113+
@Input
114+
@Optional
115+
protected abstract SetProperty<ModuleComponentIdentifier> getExcludedDependencyIdentifiers();
116+
111117
public final void excludeDependencies(final NamedDomainObjectProvider<Configuration> config) {
112118
this.getExcludedDependencies().addAll(config.flatMap(conf -> conf.getIncoming().getArtifacts().getResolvedArtifacts()));
113119
}
@@ -123,18 +129,21 @@ public final void excludeDependencies(final NamedDomainObjectProvider<Configurat
123129

124130
public OutputDependenciesToJson() {
125131
this.getAllowedClassifiers().add("");
132+
this.getExcludedDependencyIdentifiers().set(this.getExcludedDependencies().map(artifacts -> {
133+
final Set<ModuleComponentIdentifier> ids = new HashSet<>();
134+
for (final ResolvedArtifactResult artifact : artifacts) {
135+
final ComponentIdentifier id = artifact.getId().getComponentIdentifier();
136+
if (id instanceof ModuleComponentIdentifier) {
137+
ids.add((ModuleComponentIdentifier) id);
138+
}
139+
}
140+
return ids;
141+
}));
126142
}
127143

128144
@TaskAction
129145
public void generateDependenciesJson() {
130-
final Set<ModuleComponentIdentifier> excludedDeps = new HashSet<>();
131-
if (this.getExcludedDependencies().isPresent()) {
132-
for (final ResolvedArtifactResult result : this.getExcludedDependencies().get()) {
133-
if (result.getId().getComponentIdentifier() instanceof ModuleComponentIdentifier) {
134-
excludedDeps.add((ModuleComponentIdentifier) result.getId().getComponentIdentifier());
135-
}
136-
}
137-
}
146+
final Set<ModuleComponentIdentifier> excludedDeps = this.getExcludedDependencyIdentifiers().getOrElse(Collections.emptySet());
138147

139148
final Map<String, ConfigurationHolder> inputConfigs = this.getDependencies().get();
140149
final Map<String, List<DependencyDescriptor>> dependenciesMap = new TreeMap<>();
@@ -201,15 +210,29 @@ public static String toHexString(final byte[] bytes) {
201210
}
202211

203212
public static class ConfigurationHolder {
204-
private final Provider<Set<ResolvedArtifactResult>> configuration;
213+
private final Provider<Set<ResolvedArtifactResult>> artifacts;
205214

206215
public ConfigurationHolder(final Configuration configuration) {
207-
this.configuration = configuration.getIncoming().getArtifacts().getResolvedArtifacts();
216+
this.artifacts = configuration.getIncoming().getArtifacts().getResolvedArtifacts();
217+
}
218+
219+
@Input
220+
public Provider<Set<String>> getIds() {
221+
return this.artifacts.map(set -> {
222+
final Set<String> ids = new HashSet<>();
223+
for (final ResolvedArtifactResult artifact : set) {
224+
final ComponentIdentifier id = artifact.getId().getComponentIdentifier();
225+
if (id instanceof ModuleComponentIdentifier) {
226+
ids.add(id.getDisplayName());
227+
}
228+
}
229+
return ids;
230+
});
208231
}
209232

210233
@Internal
211234
public Provider<Set<ResolvedArtifactResult>> getArtifacts() {
212-
return this.configuration;
235+
return this.artifacts;
213236
}
214237
}
215238
}

0 commit comments

Comments
 (0)