Skip to content

Commit 79d76dd

Browse files
committed
Dependency constaints are now created using only the module
1 parent ad44008 commit 79d76dd

File tree

3 files changed

+17
-27
lines changed

3 files changed

+17
-27
lines changed

src/main/groovy/net/minecraftforge/gradle/MinecraftDependencyImpl.groovy

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package net.minecraftforge.gradle
77
import groovy.transform.CompileStatic
88
import groovy.transform.NamedVariant
99
import groovy.transform.PackageScope
10+
import groovy.transform.PackageScopeTarget
1011
import groovy.transform.stc.ClosureParams
1112
import groovy.transform.stc.SimpleType
1213
import net.minecraftforge.accesstransformers.gradle.AccessTransformersContainer
@@ -28,33 +29,32 @@ import org.jetbrains.annotations.Nullable
2829
import java.util.function.Supplier
2930

3031
@CompileStatic
31-
@PackageScope final class MinecraftDependencyImpl implements MinecraftDependencyInternal {
32+
@PackageScope([PackageScopeTarget.CLASS, PackageScopeTarget.CONSTRUCTORS])
33+
final class MinecraftDependencyImpl implements MinecraftDependencyInternal {
3234
private static final String AT_COUNT_NAME = 'fg_minecraft_atcontainers'
3335

3436
final ExternalModuleDependency delegate
3537

3638
private final Project project
3739
private final ForgeGradleProblems problems
3840
private final ObjectFactory objects
41+
private final ProviderFactory providers
3942

4043
private final Property<MinecraftExtension.Mappings> mappingsProp
4144

4245
private final Util.ActionableLazy<AccessTransformersContainer> atContainer
4346

44-
MinecraftDependencyImpl(Dependency dependency, Project project, Problems problems, ObjectFactory objects, ProviderFactory providers) {
45-
this(dependency, project, new ForgeGradleProblems(problems, providers), objects)
47+
MinecraftDependencyImpl(Dependency dependency, Project project, ForgeGradleProblems problems, ObjectFactory objects, ProviderFactory providers) {
48+
this(dependency, project, problems, objects, providers, (Util.ActionableLazy<AccessTransformersContainer>) null)
4649
}
4750

48-
MinecraftDependencyImpl(Dependency dependency, Project project, ForgeGradleProblems problems, ObjectFactory objects) {
49-
this(dependency, project, problems, objects, (Util.ActionableLazy<AccessTransformersContainer>) null)
50-
}
51-
52-
MinecraftDependencyImpl(Dependency dependency, Project project, ForgeGradleProblems problems, ObjectFactory objects, @Nullable Util.ActionableLazy<AccessTransformersContainer> atContainer) {
51+
MinecraftDependencyImpl(Dependency dependency, Project project, ForgeGradleProblems problems, ObjectFactory objects, ProviderFactory providers, @Nullable Util.ActionableLazy<AccessTransformersContainer> atContainer) {
5352
this.delegate = validateDependency(dependency, problems)
5453

5554
this.project = project
5655
this.problems = problems
5756
this.objects = objects
57+
this.providers = providers
5858

5959
this.mappingsProp = objects.property(MinecraftExtension.Mappings)
6060

@@ -92,12 +92,14 @@ import java.util.function.Supplier
9292
}
9393

9494
@PackageScope void finish(Supplier<MinecraftExtension.Mappings> defaultMappings, Util.ActionableLazy<AccessTransformersContainer> defaultATs) {
95-
var mappings = this.mappingsProp.tap { finalizeValue() }.getOrElse(defaultMappings.get())
95+
var mappings = this.mappingsProp.convention(this.providers.provider { defaultMappings.get() }).tap { finalizeValue() } .get()
9696

9797
this.project.configurations.forEach { configuration ->
9898
if (!configuration.canBeDeclared) return
9999

100-
configuration.dependencyConstraints.add(this.project.dependencies.constraints.create(this.delegate) { constraint ->
100+
configuration.dependencyConstraints.add(this.project.dependencies.constraints.create(this.delegate.module.toString()) { constraint ->
101+
constraint.because('Accounts for mappings used and natives variants')
102+
101103
constraint.attributes { attributes ->
102104
attributes.attribute(MinecraftExtension.Attributes.os, objects.named(OperatingSystemFamily, OperatingSystem.current().familyName))
103105
attributes.attribute(MinecraftExtension.Attributes.mappingsChannel, mappings.channel())
@@ -159,6 +161,6 @@ import java.util.function.Supplier
159161

160162
@Override
161163
MinecraftDependency copy() {
162-
new MinecraftDependencyImpl(this.delegate.copy(), this.project, this.problems, this.objects, this.atContainer.copy())
164+
new MinecraftDependencyImpl(this.delegate.copy(), this.project, this.problems, this.objects, this.providers, this.atContainer.copy())
163165
}
164166
}

src/main/groovy/net/minecraftforge/gradle/SlimeLauncherExec.groovy

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,23 @@ import java.nio.file.Files
3838
* configuration, so that the project's entire classpath can be used when starting the game.
3939
*/
4040
@CompileStatic
41-
@PackageScope abstract class SlimeLauncherExec extends JavaExec {
41+
@PackageScope abstract class SlimeLauncherExec extends JavaExec implements ForgeGradleTask {
4242
@PackageScope static TaskProvider<SlimeLauncherExec> register(Project project, SourceSet sourceSet, SlimeLauncherOptions options, Map<String, RunConfig> configs, Dependency dependency, Provider<RegularFile> metadataZip) {
4343
project.tasks.register(sourceSet.getTaskName('run', options.name), SlimeLauncherExec) { task ->
44-
final plugin = project.plugins.getPlugin(ForgeGradlePlugin)
45-
4644
task.description = "Runs the '$options.name' Slime Launcher run configuration."
4745

4846
task.classpath = task.objectFactory.fileCollection().from(
4947
task.providerFactory.provider { sourceSet.runtimeClasspath }
5048
)
5149

52-
var caches = task.objectFactory.directoryProperty().value(plugin.globalCaches.dir("slime-launcher/cache/${dependency.group.replace('.', '/')}/${dependency.name}/${dependency.version}"))
50+
var caches = task.objectFactory.directoryProperty().value(task.globalCaches.dir("slime-launcher/cache/${dependency.group.replace('.', '/')}/${dependency.name}/${dependency.version}"))
5351
task.cacheDir.set caches.map(task.problems.ensureDirectory())
5452
task.metadataZip.set metadataZip
5553

5654
task.inherit(configs, options.name)
5755
options.apply(task)
5856

59-
task.classpath plugin.getTool(Tools.SLIME_LAUNCHER)
57+
task.classpath task.getTool(Tools.SLIME_LAUNCHER)
6058

6159
if (task.buildAllProjects)
6260
task.dependsOn project.allprojects.collect { it.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME) }.toArray()

src/main/groovy/net/minecraftforge/gradle/SyncMinecraftMaven.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,23 @@
66

77
import org.gradle.api.DefaultTask;
88
import org.gradle.api.Project;
9-
import org.gradle.api.artifacts.ModuleVersionSelector;
109
import org.gradle.api.file.ConfigurableFileCollection;
1110
import org.gradle.api.file.DirectoryProperty;
1211
import org.gradle.api.model.ObjectFactory;
13-
import org.gradle.api.plugins.JavaPlugin;
14-
import org.gradle.api.plugins.JavaPluginExtension;
1512
import org.gradle.api.problems.Problems;
16-
import org.gradle.api.provider.ListProperty;
1713
import org.gradle.api.provider.Property;
18-
import org.gradle.api.provider.Provider;
1914
import org.gradle.api.provider.ProviderFactory;
2015
import org.gradle.api.provider.SetProperty;
2116
import org.gradle.api.tasks.Classpath;
2217
import org.gradle.api.tasks.Input;
2318
import org.gradle.api.tasks.InputDirectory;
24-
import org.gradle.api.tasks.InputFile;
2519
import org.gradle.api.tasks.Optional;
2620
import org.gradle.api.tasks.TaskAction;
2721
import org.gradle.api.tasks.TaskProvider;
28-
import org.gradle.jvm.toolchain.JavaLauncher;
2922
import org.gradle.jvm.toolchain.JavaToolchainService;
3023
import org.gradle.process.ExecOperations;
31-
import org.jetbrains.annotations.UnknownNullability;
3224

3325
import javax.inject.Inject;
34-
import java.io.File;
3526
import java.io.Serializable;
3627
import java.util.ArrayList;
3728
import java.util.Collection;
@@ -106,8 +97,7 @@ private void exec(Request request) {
10697
}
10798

10899
private List<String> argsFor(Request request) {
109-
var args = new ArrayList<String>();
110-
args.addAll(List.of(
100+
var args = new ArrayList<>(List.of(
111101
"--maven",
112102
"--cache", this.getCaches().get().getAsFile().getAbsolutePath(),
113103
"--output", this.getOutput().get().getAsFile().getAbsolutePath(),

0 commit comments

Comments
 (0)