Class SrgProvider

java.lang.Object
dev.architectury.loom.forge.dependency.DependencyProvider
dev.architectury.loom.forge.dependency.SrgProvider

public class SrgProvider extends DependencyProvider
  • Constructor Details

    • SrgProvider

      public SrgProvider(org.gradle.api.Project project)
  • Method Details

    • provide

      public void provide(DependencyInfo dependency) throws Exception
      Specified by:
      provide in class DependencyProvider
      Throws:
      Exception
    • createMergeMappingTool

      public ForgeExternalToolService.Options createMergeMappingTool() throws IOException
      Returns InstallerTools 的 MERGE_MAPPING 调用声明(工具 classpath、主类与参数模板)..

      配置期只接线:依赖坐标与参数模板都是从项目状态读来的纯值,工具 classpath 是一个惰性的 FileCollection(DependencyDownloader 只建 detached configuration,不解析)。 因此本方法既不解析依赖、也不发起进程,返回值可以挂成任务的 @Nested 输入。

      参数模板里的取值分两类,口径与 createNeoForgeInstallerTools 一致:

      • 配置期就确定的纯值——--task/--left/--right/--classes ——就地定死在模板里,于是这条链搬进任务后不需要在执行期回读项目模型;
      • 只有调用时才知道的路径——{output}(本次调用的目标 tsrg)——留作占位符。

      参数顺序与改造前那串 settings.args(...) 逐条一致。

      Returns:
      InstallerTools 的 MERGE_MAPPING 调用声明(工具 classpath、主类与参数模板)
      Throws:
      IOException
    • runMergeMapping

      public static void runMergeMapping(ForgeExternalToolService.Options tool, Path output, ServiceFactory serviceFactory)
      执行期求值:只认选项、本次调用的目标路径与服务工厂,不读项目模型.

      与 createMergeMappingTool() 配对,让配置期路径与「把这段搬进任务」之后的路径共用同一份 调用声明:实际命令行仍只由 ForgeExternalToolService.settingsFor(java.util.Map<java.lang.String, java.lang.String>) 构造一处。

    • getSrg

      public Path getSrg()
    • getMergedMojangRaw

      public Path getMergedMojangRaw()
    • getMergedMojangTrimmed

      public Path getMergedMojangTrimmed()
    • isTsrgV2

      public boolean isTsrgV2()
    • getMojmapTsrg2

      public static Path getMojmapTsrg2(org.gradle.api.Project project, LoomGradleExtension extension) throws IOException
      Throws:
      IOException
    • visitMojangMappings

      public static void visitMojangMappings(net.fabricmc.mappingio.MappingVisitor visitor, MappingContext context)
    • getTargetConfig

      public String getTargetConfig()
      Specified by:
      getTargetConfig in class DependencyProvider