Package net.fabricmc.loom.pipeline
Class GenerateSrgNamedMappingsTask
java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
net.fabricmc.loom.pipeline.GenerateSrgNamedMappingsTask
- 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 GenerateSrgNamedMappingsTask
extends org.gradle.api.DefaultTask
L3 流水线:把「srg → named」的映射整份写成 SRG 文本(Forge 的
mappings-srg-named.srg).
它取代的是 MappingConfiguration.applyToProject 里那段配置期同步执行的生成
(配置文件锁 → 锁内二次确认 → 写临时文件 → 原子落位)。转换本身仍走
MappingConfiguration.writeSrgNamedMappings(Path, Path):同一份实现被两条路径共用,
避免两套转换逻辑产出不等价的 srg 文本——这与本流水线其余环节(合并/拆分/重映射)的处置一致。
| 旧路径 | 本任务 | |
|---|---|---|
| 是否需要生成 | 配置期 isReusableMappingsText 判定(存在且非空) |
Gradle up-to-date 检查(输入内容 + 输出快照) |
| 并发保护 | 跨进程文件锁 + 锁内二次确认 | 任务图 + 构建缓存 |
| 残骸恢复 | 手工判「0 字节残骸」并重建 | 输出快照不符即重建 |
| 执行时机 | 配置期(afterEvaluate) | 执行期 |
为什么输入是「srg 命名空间的 tiny」而不是映射 jar
旧路径用的是TinyMappingsService(MappingOption.WITH_SRG),它读的就是
mappings-srg-migrated.tiny 这一份纯文本映射树;本任务的 getMappings() 取同一条路径,
读取方式也同源(MappingReader.read(Path, MappingTree))。换成映射 jar 需要重跑整条
layered/migrated 链,那是另一个阶段的事,也不属于本次迁移范围。
就绪判据的差别
旧路径的「存在且非空」判据是为了识别「先删后写被中断」留下的 0 字节残骸;换成任务后这一层由 Gradle 的输出快照承担:快照不符(含被截断)即重建,且任务每次都是原子落位,不会自己制造残骸。getRefreshDeps() 只是把 --refresh-dependencies 的强制重建语义保留下来(与
ExtractMinecraftServerJarTask 同款),不参与产物的内容判定。-
Nested Class Summary
Nested classes/interfaces inherited from interface org.gradle.api.Named
org.gradle.api.Named.Namer -
Field Summary
Fields 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.RegularFileProperty输入的映射树:mappings-srg-migrated.tiny(srg 命名空间).abstract org.gradle.api.provider.Property<Boolean> 是否强制重建(对应--refresh-dependencies):旧路径在该情形下无条件重写产物.abstract org.gradle.api.file.RegularFileProperty产物:mappings-srg-named.srg(与旧路径同一条路径).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
-
Constructor Details
-
GenerateSrgNamedMappingsTask
public GenerateSrgNamedMappingsTask()
-
-
Method Details
-
getMappings
@InputFile @PathSensitive(NONE) public abstract org.gradle.api.file.RegularFileProperty getMappings()输入的映射树:mappings-srg-migrated.tiny(srg 命名空间). -
getRefreshDeps
是否强制重建(对应--refresh-dependencies):旧路径在该情形下无条件重写产物. -
getSrgFile
@OutputFile public abstract org.gradle.api.file.RegularFileProperty getSrgFile()产物:mappings-srg-named.srg(与旧路径同一条路径). -
generate
- Throws:
IOException
-