Package net.fabricmc.loom.pipeline
Class AccessTransformForgeJarTask
java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
net.fabricmc.loom.pipeline.AccessTransformForgeJarTask
- All Implemented Interfaces:
Comparable<org.gradle.api.Task>,org.gradle.api.internal.DynamicObjectAware,org.gradle.api.internal.TaskInternal,org.gradle.api.Named,org.gradle.api.plugins.ExtensionAware,org.gradle.api.Task,org.gradle.util.Configurable<org.gradle.api.Task>
@CacheableTask
public abstract class AccessTransformForgeJarTask
extends org.gradle.api.DefaultTask
L3 流水线:对打补丁后的中间 Minecraft jar 执行 Forge 的 access transform
(
minecraft-<type>-<ns>-at-patched.jar).
它取代的是 MinecraftPatchedProvider.provide() 里那段配置期同步执行的
accessTransformForge()。
工具声明为什么是「纯值 + 执行期重建」
AT 工具的 classpath 来自项目依赖解析、JVM 可执行文件来自 Java 工具链,二者都只能在配置期取得; 待应用的 AT 文件则要从 userdev jar 里抽出来,落在一个临时目录里。因此这里按本仓库既有的AccessTransformerJarProcessor 处置方式:
- 配置期把工具信息解析成纯值(
AccessTransformerService.resolveTool(org.gradle.api.Project))并逐项声明成@Input/@Classpath; - 执行期用注入的
ObjectFactory重建服务选项 (AccessTransformerService.createOptions(ObjectFactory, AccessTransformerService.Tool, Object)), 并把 AT 文件抽到本任务自己的临时目录里。
AccessTransformerService.execute 构造一处,
与配置期路径不会分叉。-
Nested Class Summary
Nested classes/interfaces inherited from interface org.gradle.api.Named
org.gradle.api.Named.Namer -
Field Summary
FieldsFields inherited from interface org.gradle.api.Task
TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidgenerate()abstract org.gradle.api.file.ConfigurableFileCollectionAT 工具及其依赖的 jar(配置期解析出的绝对路径).abstract org.gradle.api.provider.Property<String> AT 文件在 userdev jar 里的目录形态(ats声明为目录时设置).abstract org.gradle.api.provider.Property<String> AT 工具使用的 JVM 可执行文件;未配置 Java 工具链时为未设置,表示沿用 Gradle 自身的 JVM.abstract org.gradle.api.provider.Property<String> AT 工具的主类.abstract org.gradle.api.provider.ListProperty<String> AT 文件在 userdev jar 里的清单形态(ats声明为文件列表时设置).abstract org.gradle.api.provider.Property<Boolean> 是否把 AT 工具的标准错误透传到构建日志.abstract org.gradle.api.provider.Property<Boolean> 是否把 AT 工具的标准输出透传到构建日志.abstract org.gradle.api.file.RegularFilePropertyAT 文件的来源:Forge 的 userdev jar.abstract org.gradle.api.model.ObjectFactory执行期实例化服务选项用(Project在执行期不可用,见类注释).abstract org.gradle.api.file.RegularFileProperty产物:AT 之后的 jar(与配置期同一条路径).abstract org.gradle.api.file.RegularFileProperty输入:打补丁后的中间 jar(AT 的作用对象).Methods inherited from class org.gradle.api.DefaultTask
compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesServiceMethods inherited from class org.gradle.api.internal.AbstractTask
acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, setImpliesSubProjectsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gradle.api.Task
doNotTrackState, notCompatibleWithConfigurationCache
-
Field Details
-
NAME
任务名:消费侧(本仓库的测试与诊断)按它引用产出任务.- See Also:
-
-
Constructor Details
-
AccessTransformForgeJarTask
public AccessTransformForgeJarTask()
-
-
Method Details
-
getPatchedIntermediateJar
@InputFile @PathSensitive(NONE) public abstract org.gradle.api.file.RegularFileProperty getPatchedIntermediateJar()输入:打补丁后的中间 jar(AT 的作用对象). -
getForgeUserdevJar
@InputFile @PathSensitive(NONE) public abstract org.gradle.api.file.RegularFileProperty getForgeUserdevJar()AT 文件的来源:Forge 的 userdev jar. -
getAtDirectory
AT 文件在 userdev jar 里的目录形态(ats声明为目录时设置). -
getAtPaths
AT 文件在 userdev jar 里的清单形态(ats声明为文件列表时设置). -
getAtMainClass
AT 工具的主类. -
getAtClasspath
@Classpath public abstract org.gradle.api.file.ConfigurableFileCollection getAtClasspath()AT 工具及其依赖的 jar(配置期解析出的绝对路径). -
getAtJavaExecutable
AT 工具使用的 JVM 可执行文件;未配置 Java 工具链时为未设置,表示沿用 Gradle 自身的 JVM. -
getAtVerboseStdout
是否把 AT 工具的标准输出透传到构建日志. -
getAtVerboseStderr
是否把 AT 工具的标准错误透传到构建日志. -
getOutputJar
@OutputFile public abstract org.gradle.api.file.RegularFileProperty getOutputJar()产物:AT 之后的 jar(与配置期同一条路径). -
getObjects
@Inject public abstract org.gradle.api.model.ObjectFactory getObjects()执行期实例化服务选项用(Project在执行期不可用,见类注释). -
generate
- Throws:
Exception
-