Interface RemapModsTask.ModSpec
- Enclosing class:
RemapModsTask
坐标不是元数据冗余:产出路径由坐标与 cache key 决定,而 getOutputJar() 携带的正是这条路径
——两者必须一致,否则写出的文件与消费方按 maven 助手换算出的是两条不同的路径。
-
Method Summary
Modifier and TypeMethodDescriptionorg.gradle.api.provider.Property<String> 产出坐标的分类器;缺省时产出路径不含分类器段.org.gradle.api.provider.Property<String> getGroup()产出坐标的组,决定产出路径.org.gradle.api.provider.Property<Boolean> 声明的 refmap 内联选项;决定是否套用 InlineRefmap.org.gradle.api.file.RegularFileProperty原始 mod jar.org.gradle.api.provider.Property<ArtifactMetadata.MixinRemapType> jar 内容派生的 mixin 重映射类型;决定套用哪个扩展.org.gradle.api.provider.Property<String> getName()产出坐标的名(含 cache key).org.gradle.api.file.RegularFileProperty本 mod 重映射后的 jar 落在共享仓库里的哪一条路径.org.gradle.api.file.RegularFileProperty拆分依赖的 client 半落位;非拆分依赖为空,此时getOutputJar()就是全部产物.org.gradle.api.provider.Property<String> 产出坐标的版本.
-
Method Details
-
getInputJar
@InputFile @PathSensitive(RELATIVE) org.gradle.api.file.RegularFileProperty getInputJar()原始 mod jar.每个属性都必须带输入/输出注解:
@Nested的嵌套类型上,Gradle 的工作校验会 要求**所有**属性可追踪,只写@Optional是不够的(它修饰的是可选性,不是输入性) ——漏注解不会在编译期暴露,而是等到某个工程真的依赖了文件型 mod 才在任务校验阶段失败。 -
getGroup
产出坐标的组,决定产出路径. -
getName
产出坐标的名(含 cache key). -
getVersion
产出坐标的版本. -
getClassifier
产出坐标的分类器;缺省时产出路径不含分类器段. -
getMixinRemapType
jar 内容派生的 mixin 重映射类型;决定套用哪个扩展. -
getInlineRefmap
声明的 refmap 内联选项;决定是否套用 InlineRefmap. -
getOutputJar
@Internal org.gradle.api.file.RegularFileProperty getOutputJar()本 mod 重映射后的 jar 落在共享仓库里的哪一条路径.路径只有一处来源——
LocalMavenHelper(消费者的文件依赖也由它算出),注册时按同一条路径 同时喂给任务与登记表。刻意不在这里重算布局:快照版本的目录名与文件名不同源,重算就会分叉成 「任务写一条路径、消费方读另一条」的静默缺失。@Internal而不是@OutputFile:本任务按批次共享产出,写出的集合是RemapModsTask.getOutputJars()(只有认领到的那些),而这里的路径是**每条** mod 的落位——两者混用会把 不属于本任务的产物也声明成输出。 -
getSplitClientJar
@Internal org.gradle.api.file.RegularFileProperty getSplitClientJar()拆分依赖的 client 半落位;非拆分依赖为空,此时getOutputJar()就是全部产物.有值表示这条依赖的产物流向消费方的两条路径(
-common与-client, 见SplitModDependency):重映射产出的是整体 jar,因此执行期还要按JarSplitter把它拆成两半,再分别落位到这两条路径上——只写其中一条,另一条就是没有生产者的悬空路径。来源与
getOutputJar()相同(同样由LocalMavenHelper算出,并参与登记表认领), 因此两条路径与消费方读的两条永远一致。只标
@Internal:它与其它输入注解不能共存(属性既然被忽略,就不该再声明可选性)。 为空表示非拆分依赖,这一点与@Optional无关。
-