Package net.fabricmc.loom.task.service
Class MixinAPMappingService
java.lang.Object
net.fabricmc.loom.util.service.Service<MixinAPMappingService.Options>
net.fabricmc.loom.task.service.MixinAPMappingService
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ServiceType<MixinAPMappingService.Options, MixinAPMappingService> -
Constructor Summary
ConstructorsConstructorDescriptionMixinAPMappingService(MixinAPMappingService.Options options, ServiceFactory serviceFactory) -
Method Summary
Modifier and TypeMethodDescriptionstatic org.gradle.api.provider.Provider<List<MixinAPMappingService.Options>> createOptions(org.gradle.api.Project thisProject, org.gradle.api.provider.Provider<String> from, org.gradle.api.provider.Provider<String> to) 收集用于 Mixin AP 的映射来源.static @Nullable org.gradle.api.provider.Provider<MixinAPMappingService.Options> createOptions(org.gradle.api.Project project, org.gradle.api.tasks.SourceSet sourceSet, org.gradle.api.provider.Provider<String> from, org.gradle.api.provider.Provider<String> to) @Nullable net.fabricmc.tinyremapper.IMappingProviderMethods inherited from class net.fabricmc.loom.util.service.Service
getOptions, getServiceFactory
-
Field Details
-
TYPE
-
-
Constructor Details
-
MixinAPMappingService
-
-
Method Details
-
createOptions
public static org.gradle.api.provider.Provider<List<MixinAPMappingService.Options>> createOptions(org.gradle.api.Project thisProject, org.gradle.api.provider.Provider<String> from, org.gradle.api.provider.Provider<String> to) 收集用于 Mixin AP 的映射来源.两种模式覆盖的项目集合不同,这是隔离模式下的已知取舍(不是等价实现):
- 非隔离模式用
GradleUtils.allLoomProjects(org.gradle.api.invocation.Gradle, java.util.function.Consumer<org.gradle.api.Project>)遍历整个构建中 mappingId 相同的 Loom 项目。它需要读其它项目的扩展状态,在 Isolated Projects 下是不允许的; - 隔离模式只覆盖当前项目与
LoomProjectData.getDependencies(Project)得到的 runtime/compileClasspath 上的直接ProjectDependency(同样按 mappingId 过滤)。 DTO 里没有依赖图,不读别的项目就无法递归展开传递依赖。
后果:若项目 A 通过 B 间接依赖 C,隔离模式下 C 的 mixin 映射不会被纳入, A 重映射出的 refmap 可能与普通模式不同;直接依赖的场景不受影响。 需要完整覆盖时请关闭 Isolated Projects,或把 C 也声明成直接依赖。
- Parameters:
thisProject- 当前项目from- 源命名空间to- 目标命名空间- Returns:
- 每个(项目,源集)组合一份选项的惰性提供者
- 非隔离模式用
-
createOptions
public static @Nullable org.gradle.api.provider.Provider<MixinAPMappingService.Options> createOptions(org.gradle.api.Project project, org.gradle.api.tasks.SourceSet sourceSet, org.gradle.api.provider.Provider<String> from, org.gradle.api.provider.Provider<String> to) -
getMappingsProvider
public @Nullable net.fabricmc.tinyremapper.IMappingProvider getMappingsProvider()
-