Skip to content

Commit d897dee

Browse files
authored
Relax strict Minecraft dependency version requirements for legacy projects (#189)
1 parent 9996c85 commit d897dee

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/legacy/java/net/neoforged/moddevgradle/legacyforge/internal/LegacyForgeModDevPlugin.java

+3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ public void apply(Project project) {
4040
project.getDependencies().getComponents().withModule("net.neoforged:forge", LegacyForgeMetadataTransform.class);
4141
project.getDependencies().getComponents().withModule("net.minecraftforge:forge", LegacyForgeMetadataTransform.class);
4242
project.getDependencies().getComponents().withModule("de.oceanlabs.mcp:mcp_config", McpMetadataTransform.class);
43+
// For legacy versions we need to relax the strict version requirements imposed by the minecraft-dependencies,
44+
// since Forge upgrades especially log4j2, but we have no way of fixing its metadata fully (besides doing it statically).
45+
project.getDependencies().getComponents().withModule("net.neoforged:minecraft-dependencies", NonStrictDependencyTransform.class);
4346

4447
var depFactory = project.getDependencyFactory();
4548
var autoRenamingToolRuntime = project.getConfigurations().create(CONFIGURATION_TOOL_ART, spec -> {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package net.neoforged.moddevgradle.legacyforge.internal;
2+
3+
import org.gradle.api.artifacts.CacheableRule;
4+
import org.gradle.api.artifacts.ComponentMetadataContext;
5+
import org.gradle.api.artifacts.ComponentMetadataRule;
6+
7+
/**
8+
* Relaxes all strict version constraints to just be required.
9+
*/
10+
@CacheableRule
11+
public class NonStrictDependencyTransform implements ComponentMetadataRule {
12+
@Override
13+
public void execute(ComponentMetadataContext context) {
14+
context.getDetails().allVariants(variant -> {
15+
variant.withDependencies(dependencies -> {
16+
for (var dependency : dependencies) {
17+
dependency.version(version -> {
18+
version.prefer(version.getStrictVersion());
19+
version.require(version.getStrictVersion());
20+
version.strictly("");
21+
});
22+
}
23+
});
24+
});
25+
}
26+
}

0 commit comments

Comments
 (0)