Package net.fabricmc.loom.extension
Class LoomGradleExtensionImpl
java.lang.Object
net.fabricmc.loom.extension.LoomGradleExtensionApiImpl
net.fabricmc.loom.extension.LoomGradleExtensionImpl
- All Implemented Interfaces:
LoomGradleExtensionAPI,LoomGradleExtension
public abstract class LoomGradleExtensionImpl
extends LoomGradleExtensionApiImpl
implements LoomGradleExtension
-
Field Summary
Fields inherited from class net.fabricmc.loom.extension.LoomGradleExtensionApiImpl
accessWidener, customMetadata, DEFAULT_INTERMEDIARY_URL, deprecationHelper, fabricModJsonPath, generateSrgTiny, hasEvaluatedLayeredMappings, intermediary, intermediateMappingsProvider, jarProcessors, knownIndyBsms, layeredMappingsDependencyMap, layeredSpecBuilderScope, log4jConfigs, modProvidedJavadoc, remapperExtensions, settingsPostEdit, versionsManifests -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTransitiveAccessWideners(List<AccessWidenerFile> accessWidenerFiles) protected <T extends IntermediateMappingsProvider>
voidconfigureIntermediateMappingsProviderInternal(T provider) booleanWhen enabled disable all forms of remapping.booleanWhen enabled do not remap the output jars.@Nullable MappingConfigurationReturns 已建立的映射配置;本工程不使用映射(disableObfuscation/ unobfuscated Forge) 或尚未 setup 时为null.protected abstract org.gradle.api.configuration.BuildFeaturesorg.gradle.api.provider.Provider<ArtifactMetadata.MixinRemapType> getFiles()getForge()Gets the Forge extension used to configure Forge details.org.gradle.api.provider.ListProperty<LibraryProcessorManager.LibraryProcessorFactory> org.gradle.api.file.FileCollectiongetMinecraftJarsCollection(MappingsNamespace mappingsNamespace) 取某个命名空间下的 Minecraft jar 集合.getMixin()Gets the NeoForge extension used to configure NeoForge details.org.gradle.api.provider.Provider<MappingsNamespace> protected org.gradle.api.Projectorg.gradle.api.provider.ListProperty<RemapperExtensionHolder> org.gradle.api.file.ConfigurableFileCollectionbooleanbooleanbooleanbooleanvoidAn Experimental option to provide empty intermediate mappings, to be used for game versions without any intermediate mappings.booleanvoidsetDependencyProviders(DependencyProviders dependencyProviders) voidsetForgeRunsProvider(ForgeRunsProvider forgeRunsProvider) voidsetInstallerData(InstallerData object) voidsetIntermediaryMinecraftProvider(IntermediaryMinecraftProvider<?> intermediaryMinecraftProvider) voidsetMappingConfiguration(MappingConfiguration mappingConfiguration) voidsetMetadataProvider(MinecraftMetadataProvider metadataProvider) voidsetMinecraftJarsTaskOutputs(MappingsNamespace mappingsNamespace, org.gradle.api.file.FileCollection taskOutputs) 登记某个命名空间下、由任务产出的 Minecraft jar 集合.voidsetMinecraftProvider(MinecraftProvider minecraftProvider) voidsetMojangMappedMinecraftProvider(MojangMappedMinecraftProvider<?> mojangMappedMinecraftProvider) voidsetNamedMinecraftProvider(NamedMinecraftProvider<?> namedMinecraftProvider) voidsetRefreshDeps(boolean refreshDeps) voidsetSrgMinecraftProvider(SrgMinecraftProvider<?> srgMinecraftProvider) Methods inherited from class net.fabricmc.loom.extension.LoomGradleExtensionApiImpl
addMinecraftJarProcessor, addRemapConfiguration, addRemapperExtension, areEnvironmentSourceSetsSplit, createRemapConfigurations, decompilers, disableDeprecatedPomGeneration, forge, getAccessWidenerPath, getCustomMinecraftMetadata, getDecompilerOptions, getDecompileTask, getDefaultMixinRemapType, getDeprecationHelper, getEnableModProvidedJavadoc, getEnableTransitiveAccessWideners, getFabricModJsonPath, getGameJarProcessors, getInterfaceInjection, getIntermediaryUrl, getIntermediateMappingsProvider, getKnownIndyBsms, getLog4jConfigs, getMappingsFile, getMinecraftJarConfiguration, getMinecraftJarProcessors, getMinecraftVersion, getMods, getModVersion, getNamedMinecraftJars, getPlatform, getProductionNamespace, getRemapConfigurations, getRemapJsrAnnotationsToJetBrains, getRunConfigs, getRuntimeOnlyLog4j, getRuntimeOnlyLwjglGraphics, getSettingsPostEdit, getSplitModDependencies, getTasksBeforeRun, getUncompressNestedJars, getUseIntermediateMappings, getVersionsManifests, injectAccessWidener, isSilentMojangMappingsLicenseEnabled, layered, mixin, mods, neoForge, nestJars, nestJars, nestJars, officialMojangMappings, runs, setGenerateSrgTiny, setIntermediateMappingsProvider, setIntermediateMappingsProvider, shouldGenerateSrgTiny, silentMojangMappingsLicense, splitEnvironmentSourceSetsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.fabricmc.loom.LoomGradleExtension
addPlatformMappingsDependency, getForgeProvider, getForgeUniversalProvider, getForgeUserdevProvider, getMcpConfigProvider, getMinecraftJars, getPatchProvider, getPlatformMappingFile, getSrgProvider, isDataGenEnabled, isForgeLikeAndNotOfficial, isForgeLikeAndOfficial, isLegacyForge, isModernForgeLike, isUnobfuscatedForgeMethods inherited from interface net.fabricmc.loom.api.LoomGradleExtensionAPI
addJarProcessor, addMinecraftJarProcessor, addRemapConfiguration, addRemapperExtension, addTaskBeforeRun, areEnvironmentSourceSetsSplit, clientOnlyMinecraftJar, createRemapConfigurations, decompilers, disableDeprecatedPomGeneration, forge, getAccessWidenerPath, getCompileRemapConfigurations, getCustomMinecraftManifest, getCustomMinecraftMetadata, getDecompilerOptions, getDecompileTask, getDefaultMixinRemapType, getDeprecationHelper, getEnableModProvidedJavadoc, getEnableTransitiveAccessWideners, getFabricModJsonPath, getGameJarProcessors, getInterfaceInjection, getIntermediaryUrl, getIntermediateMappingsProvider, getKnownIndyBsms, getLog4jConfigs, getMappingsFile, getMinecraftJarConfiguration, getMinecraftJarProcessors, getMinecraftVersion, getMods, getModVersion, getNamedMinecraftJars, getPlatform, getProductionNamespace, getRemapConfigurations, getRemapJsrAnnotationsToJetBrains, getRunConfigs, getRuns, getRuntimeOnlyLog4j, getRuntimeOnlyLwjglGraphics, getRuntimeRemapConfigurations, getSettingsPostEdit, getSplitModDependencies, getTasksBeforeRun, getUncompressNestedJars, getUseIntermediateMappings, getVersionsManifests, injectAccessWidener, injectAccessWidener, interfaceInjection, isForge, isForgeLike, isNeoForge, isQuilt, isSilentMojangMappingsLicenseEnabled, layered, mixin, mods, neoForge, nestJars, nestJars, nestJars, officialMojangMappings, runs, serverOnlyMinecraftJar, setGenerateSrgTiny, setIntermediateMappingsProvider, setIntermediateMappingsProvider, shouldGenerateSrgTiny, silentMojangMappingsLicense, splitEnvironmentSourceSets, splitMinecraftJar, versionsManifests
-
Constructor Details
-
LoomGradleExtensionImpl
-
-
Method Details
-
getBuildFeatures
@Inject protected abstract org.gradle.api.configuration.BuildFeatures getBuildFeatures() -
getProject
protected org.gradle.api.Project getProject()- Specified by:
getProjectin classLoomGradleExtensionApiImpl
-
getFiles
- Specified by:
getFilesin interfaceLoomGradleExtension- Specified by:
getFilesin classLoomGradleExtensionApiImpl
-
getMetadataProvider
- Specified by:
getMetadataProviderin interfaceLoomGradleExtension
-
setMetadataProvider
- Specified by:
setMetadataProviderin interfaceLoomGradleExtension
-
getMinecraftProvider
- Specified by:
getMinecraftProviderin interfaceLoomGradleExtension
-
setMinecraftProvider
- Specified by:
setMinecraftProviderin interfaceLoomGradleExtension
-
getMappingConfiguration
- Specified by:
getMappingConfigurationin interfaceLoomGradleExtension
-
findMappingConfiguration
Description copied from interface:LoomGradleExtensionReturns 已建立的映射配置;本工程不使用映射(disableObfuscation/ unobfuscated Forge) 或尚未 setup 时为null..与
LoomGradleExtension.getMappingConfiguration()的差别只有一个:不抛异常。任务侧需要「有就接线、没有就跳过」 的语义(见LoomGradleExtension.addPlatformMappingsDependency(Task)),在那里抛异常会把一个可选的接线点变成崩溃点。- Specified by:
findMappingConfigurationin interfaceLoomGradleExtension- Returns:
- 已建立的映射配置;本工程不使用映射(
disableObfuscation/ unobfuscated Forge) 或尚未 setup 时为null
-
setMappingConfiguration
- Specified by:
setMappingConfigurationin interfaceLoomGradleExtension
-
getNamedMinecraftProvider
- Specified by:
getNamedMinecraftProviderin interfaceLoomGradleExtension
-
getIntermediaryMinecraftProvider
- Specified by:
getIntermediaryMinecraftProviderin interfaceLoomGradleExtension
-
setNamedMinecraftProvider
- Specified by:
setNamedMinecraftProviderin interfaceLoomGradleExtension
-
setIntermediaryMinecraftProvider
public void setIntermediaryMinecraftProvider(IntermediaryMinecraftProvider<?> intermediaryMinecraftProvider) - Specified by:
setIntermediaryMinecraftProviderin interfaceLoomGradleExtension
-
noIntermediateMappings
public void noIntermediateMappings()Description copied from interface:LoomGradleExtensionAPIAn Experimental option to provide empty intermediate mappings, to be used for game versions without any intermediate mappings.- Specified by:
noIntermediateMappingsin interfaceLoomGradleExtensionAPI
-
getSrgMinecraftProvider
- Specified by:
getSrgMinecraftProviderin interfaceLoomGradleExtension
-
setSrgMinecraftProvider
- Specified by:
setSrgMinecraftProviderin interfaceLoomGradleExtension
-
getMojangMappedMinecraftProvider
- Specified by:
getMojangMappedMinecraftProviderin interfaceLoomGradleExtension
-
setMojangMappedMinecraftProvider
public void setMojangMappedMinecraftProvider(MojangMappedMinecraftProvider<?> mojangMappedMinecraftProvider) - Specified by:
setMojangMappedMinecraftProviderin interfaceLoomGradleExtension
-
getMinecraftJarsCollection
public org.gradle.api.file.FileCollection getMinecraftJarsCollection(MappingsNamespace mappingsNamespace) Description copied from interface:LoomGradleExtension取某个命名空间下的 Minecraft jar 集合.已登记任务产出(见
LoomGradleExtension.setMinecraftJarsTaskOutputs(net.fabricmc.loom.api.mappings.layered.MappingsNamespace, org.gradle.api.file.FileCollection))时,返回的集合派生自产出任务, 携带任务依赖;未登记时回退到配置期已经落盘的文件,此时集合里是裸File, 不携带任何任务依赖。同一命名空间返回的是同一份集合实例
消费方通常在**自己的任务注册期**就调用本方法,而产出方的登记发生在更晚(afterEvaluate里的provide)。因此登记不是「换一份新集合」,而是把任务产出并进已发出的那一份 (见LoomGradleExtension.setMinecraftJarsTaskOutputs(net.fabricmc.loom.api.mappings.layered.MappingsNamespace, org.gradle.api.file.FileCollection));否则先取走引用的消费方手里永远是未登记时的快照, 任务依赖会静默丢失,冷缓存下消费方就会读到一个还不存在的 jar。- Specified by:
getMinecraftJarsCollectionin interfaceLoomGradleExtension- Parameters:
mappingsNamespace- 目标命名空间- Returns:
- 该命名空间下的 Minecraft jar 集合
-
setMinecraftJarsTaskOutputs
public void setMinecraftJarsTaskOutputs(MappingsNamespace mappingsNamespace, org.gradle.api.file.FileCollection taskOutputs) Description copied from interface:LoomGradleExtension登记某个命名空间下、由任务产出的 Minecraft jar 集合.为什么必须由产出方登记
消费方(ValidateAccessWidenerTask、ValidateModProvidedJavadocTask等) 在注册自己的任务时看不到产出 MC jar 的那个TaskProvider,无法自行接上依赖; 产出方在注册任务之后调用本方法,是唯一能把这份依赖传播给全部消费方的位置。对入参的要求
taskOutputs必须派生自TaskProvider,例如project.files(remapTask.flatMap(t -> t.getOutputJar()))。 携带任务依赖的是Provider本身,裸File/Path不会携带—— 传入裸文件等价于没有登记。登记是「并进」而不是「替换引用」
本方法把taskOutputs并进LoomGradleExtension.getMinecraftJarsCollection(net.fabricmc.loom.api.mappings.layered.MappingsNamespace)为该命名空间返回的 那一份集合实例(尚未取过则现建一份),因此已经持有引用的消费方同样能拿到任务依赖。 同一命名空间重复登记时内容以最后一次为准——后一次会整体替换前一次的内容, 而不是把两份 jar 都留在集合里(例如 processed provider 覆盖未处理的 provider)。- Specified by:
setMinecraftJarsTaskOutputsin interfaceLoomGradleExtension- Parameters:
mappingsNamespace- 该集合所属的命名空间taskOutputs- 由任务产出的 jar 集合
-
getUnmappedModCollection
public org.gradle.api.file.ConfigurableFileCollection getUnmappedModCollection()- Specified by:
getUnmappedModCollectionin interfaceLoomGradleExtension
-
setInstallerData
- Specified by:
setInstallerDatain interfaceLoomGradleExtension
-
getInstallerData
- Specified by:
getInstallerDatain interfaceLoomGradleExtension
-
getMixin
- Specified by:
getMixinin interfaceLoomGradleExtension- Specified by:
getMixinin interfaceLoomGradleExtensionAPI
-
getTransitiveAccessWideners
- Specified by:
getTransitiveAccessWidenersin interfaceLoomGradleExtension
-
addTransitiveAccessWideners
- Specified by:
addTransitiveAccessWidenersin interfaceLoomGradleExtension
-
download
- Specified by:
downloadin interfaceLoomGradleExtension
-
manualRefreshDeps
public boolean manualRefreshDeps()- Specified by:
manualRefreshDepsin interfaceLoomGradleExtension
-
refreshDeps
public boolean refreshDeps()- Specified by:
refreshDepsin interfaceLoomGradleExtension
-
setRefreshDeps
public void setRefreshDeps(boolean refreshDeps) - Specified by:
setRefreshDepsin interfaceLoomGradleExtension
-
getLibraryProcessors
public org.gradle.api.provider.ListProperty<LibraryProcessorManager.LibraryProcessorFactory> getLibraryProcessors()- Specified by:
getLibraryProcessorsin interfaceLoomGradleExtension
-
getRemapperExtensions
- Specified by:
getRemapperExtensionsin interfaceLoomGradleExtension
-
getLayeredMappingFactories
- Specified by:
getLayeredMappingFactoriesin interfaceLoomGradleExtension
-
configureIntermediateMappingsProviderInternal
protected <T extends IntermediateMappingsProvider> void configureIntermediateMappingsProviderInternal(T provider) - Specified by:
configureIntermediateMappingsProviderInternalin classLoomGradleExtensionApiImpl
-
isConfigurationCacheActive
public boolean isConfigurationCacheActive()- Specified by:
isConfigurationCacheActivein interfaceLoomGradleExtension
-
isProjectIsolationActive
public boolean isProjectIsolationActive()- Specified by:
isProjectIsolationActivein interfaceLoomGradleExtension
-
isCollectingDependencyVerificationMetadata
public boolean isCollectingDependencyVerificationMetadata()- Specified by:
isCollectingDependencyVerificationMetadatain interfaceLoomGradleExtension- Returns:
- true when '--write-verification-metadata` is set
-
dontRemapOutputs
public boolean dontRemapOutputs()Description copied from interface:LoomGradleExtensionWhen enabled do not remap the output jars.- Specified by:
dontRemapOutputsin interfaceLoomGradleExtension
-
disableObfuscation
public boolean disableObfuscation()Description copied from interface:LoomGradleExtensionWhen enabled disable all forms of remapping.- Specified by:
disableObfuscationin interfaceLoomGradleExtension
-
getForge
Description copied from interface:LoomGradleExtensionAPIGets the Forge extension used to configure Forge details.- Specified by:
getForgein interfaceLoomGradleExtensionAPI- Returns:
- the Forge extension
- See Also:
-
getNeoForge
Description copied from interface:LoomGradleExtensionAPIGets the NeoForge extension used to configure NeoForge details.- Specified by:
getNeoForgein interfaceLoomGradleExtensionAPI- Returns:
- the NeoForge extension
- See Also:
-
getDependencyProviders
- Specified by:
getDependencyProvidersin interfaceLoomGradleExtension
-
setDependencyProviders
- Specified by:
setDependencyProvidersin interfaceLoomGradleExtension
-
getForgeRunsProvider
- Specified by:
getForgeRunsProviderin interfaceLoomGradleExtension
-
setForgeRunsProvider
- Specified by:
setForgeRunsProviderin interfaceLoomGradleExtension
-
getProductionNamespaceEnum
- Specified by:
getProductionNamespaceEnumin interfaceLoomGradleExtension
-
getDefaultMixinRemapTypeEnum
public org.gradle.api.provider.Provider<ArtifactMetadata.MixinRemapType> getDefaultMixinRemapTypeEnum()- Specified by:
getDefaultMixinRemapTypeEnumin interfaceLoomGradleExtension
-