Class AccessTransformerJarProcessor
java.lang.Object
dev.architectury.loom.accesstransformer.AccessTransformerJarProcessor
- All Implemented Interfaces:
MinecraftJarProcessor<AccessTransformerJarProcessor.Spec>,org.gradle.api.Named
public class AccessTransformerJarProcessor
extends Object
implements MinecraftJarProcessor<AccessTransformerJarProcessor.Spec>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic final record用于在执行期重建AccessTransformerJarProcessor的描述符.static final recordNested classes/interfaces inherited from interface net.fabricmc.loom.api.processor.MinecraftJarProcessor
MinecraftJarProcessor.MappingsProcessor<S>, MinecraftJarProcessor.ProcessorDescriptor<T extends MinecraftJarProcessor<?>>Nested classes/interfaces inherited from interface org.gradle.api.Named
org.gradle.api.Named.Namer -
Constructor Summary
ConstructorsConstructorDescriptionAccessTransformerJarProcessor(String name, Iterable<File> localAccessTransformers, AccessTransformerService.Tool tool, org.gradle.api.model.ObjectFactory objectFactory) 执行期重建用构造器:不依赖Project,AT 工具信息与对象工厂都由描述符提供.AccessTransformerJarProcessor(String name, org.gradle.api.Project project, Iterable<File> localAccessTransformers, org.gradle.api.model.ObjectFactory objectFactory) -
Method Summary
Modifier and TypeMethodDescription@Nullable AccessTransformerJarProcessor.SpecbuildSpec(SpecContext context) 返回一个描述符,用于在执行期重建本 processor 的实例.getName()voidprocessJar(Path jar, AccessTransformerJarProcessor.Spec spec, ProcessorContext context) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.fabricmc.loom.api.processor.MinecraftJarProcessor
processMappings
-
Constructor Details
-
AccessTransformerJarProcessor
-
AccessTransformerJarProcessor
public AccessTransformerJarProcessor(String name, Iterable<File> localAccessTransformers, AccessTransformerService.Tool tool, org.gradle.api.model.ObjectFactory objectFactory) 执行期重建用构造器:不依赖Project,AT 工具信息与对象工厂都由描述符提供.本构造器由
AccessTransformerJarProcessor.Descriptor.createProcessor(org.gradle.api.model.ObjectFactory)直接调用而不经ObjectFactory.newInstance: 本类唯一的@Inject构造器需要一个Project,执行期无法提供,而 Gradle 在存在@Inject构造器时只会用它,传参形态再吻合也不会选到另一个构造器。
-
-
Method Details
-
buildSpec
- Specified by:
buildSpecin interfaceMinecraftJarProcessor<AccessTransformerJarProcessor.Spec>
-
processJar
public void processJar(Path jar, AccessTransformerJarProcessor.Spec spec, ProcessorContext context) throws IOException - Specified by:
processJarin interfaceMinecraftJarProcessor<AccessTransformerJarProcessor.Spec>- Throws:
IOException
-
getName
- Specified by:
getNamein interfaceorg.gradle.api.Named
-
descriptor
Description copied from interface:MinecraftJarProcessor返回一个描述符,用于在执行期重建本 processor 的实例.配置期构造的 processor 实例常常持有无法放进任务状态的对象(例如
Project、 Gradle 服务对象、任意的第三方实现),直接作为任务输入会破坏配置缓存。因此把重建所需的最小输入 提取成描述符中的纯值,由执行期的任务调用MinecraftJarProcessor.ProcessorDescriptor.createProcessor(org.gradle.api.model.ObjectFactory)重建实例。默认实现直接抛出异常,以保证对既有第三方实现的二进制与源码兼容:未实现本方法的 processor 依然可以正常参与配置期的处理,只是无法参与执行期重建。
- Specified by:
descriptorin interfaceMinecraftJarProcessor<AccessTransformerJarProcessor.Spec>
-