java.lang.Object
net.fabricmc.loom.configuration.mods.dependency.ModDependency
Direct Known Subclasses:
SimpleModDependency, SplitModDependency

public abstract sealed class ModDependency extends Object permits SplitModDependency, SimpleModDependency
  • Constructor Details

  • Method Details

    • isCacheInvalid

      public abstract boolean isCacheInvalid(org.gradle.api.Project project, @Nullable String variant)
      Returns true when the cache is invalid.
    • copyToCache

      public abstract void copyToCache(org.gradle.api.Project project, Path path, @Nullable String variant) throws IOException
      Write an artifact to the local cache.
      Throws:
      IOException
    • applyToProject

      public abstract void applyToProject(org.gradle.api.Project project, RemappedModArtifacts artifacts)
      把本依赖注入目标配置.
      Parameters:
      artifacts - 本批 remapped mod 产物各自的生产位置(见 RemappedModArtifacts); 产出方未必是本项目的任务,故不传任务实例而传「按路径查生产者」的解析器
    • getCacheArtifactPaths

      public List<Path> getCacheArtifactPaths(org.gradle.api.Project project)
      Returns 本依赖的重映射产物落在共享仓库里的**全部**路径..

      与消费方找产物走的是同一处计算(createMavenHelper(org.gradle.api.Project, java.lang.String)),因为 L3 任务按这些路径写出、 消费方按这些路径读取:两处各自算一遍布局,会在快照版本这类「目录名与文件名不同源」的用例上分叉成 「任务写一条、消费方读另一条」的静默缺失。

      返回列表而不是单条路径,是因为依赖的产物数不止一条:拆分依赖(SplitModDependency) 会产出 common/client 两条各自落位的变体(见 override)。生产与消费都按**这一处**结果走, 「谁产出某条路径」才不会漏掉其中一条。

      Parameters:
      project - 所在项目(决定共享仓库根)
      Returns:
      本依赖的重映射产物落在共享仓库里的**全部**路径
    • createMavenHelper

      protected LocalMavenHelper createMavenHelper(org.gradle.api.Project project, @Nullable String type)
      Create a maven helper for the local cache.
      Parameters:
      type - The jar type, e.g "common" or "client" for split dependencies.
    • getInputArtifact

      public ArtifactRef getInputArtifact()
    • getMetadata

      public ArtifactMetadata getMetadata()
    • getName

      public String getName()
      产出坐标名(含 cache key);L3 任务据此定位产出路径,故为 public(见架构 §5.1.1).
    • getGroup

      public String getGroup()
      产出坐标组;同上.
    • getVersion

      public String getVersion()
      产出坐标版本;同上.
    • getClassifier

      public @Nullable String getClassifier()
      产出坐标分类器;同上.
    • getInputFile

      public Path getInputFile()
    • getWorkingFile

      public Path getWorkingFile(org.gradle.api.Project project, @Nullable String classifier)
    • getOptions

      public ModDependencyOptions getOptions()
    • toString

      public String toString()
      Overrides:
      toString in class Object