Add option to disable deprecated POM generation and the warnings together with it (#487)
This commit is contained in:
		
							parent
							
								
									1a060df4bf
								
							
						
					
					
						commit
						ea8ee4c21a
					
				
					 4 changed files with 33 additions and 1 deletions
				
			
		|  | @ -34,6 +34,7 @@ import org.gradle.api.file.ConfigurableFileCollection; | ||||||
| import org.gradle.api.file.RegularFileProperty; | import org.gradle.api.file.RegularFileProperty; | ||||||
| import org.gradle.api.provider.ListProperty; | import org.gradle.api.provider.ListProperty; | ||||||
| import org.gradle.api.provider.Property; | import org.gradle.api.provider.Property; | ||||||
|  | import org.gradle.api.publish.maven.MavenPublication; | ||||||
| import org.jetbrains.annotations.ApiStatus; | import org.jetbrains.annotations.ApiStatus; | ||||||
| 
 | 
 | ||||||
| import net.fabricmc.loom.api.decompilers.LoomDecompiler; | import net.fabricmc.loom.api.decompilers.LoomDecompiler; | ||||||
|  | @ -184,4 +185,15 @@ public interface LoomGradleExtensionAPI { | ||||||
| 	 * @return the property controlling the setup of remapped variants | 	 * @return the property controlling the setup of remapped variants | ||||||
| 	 */ | 	 */ | ||||||
| 	Property<Boolean> getSetupRemappedVariants(); | 	Property<Boolean> getSetupRemappedVariants(); | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Disables the deprecated POM generation for a publication. | ||||||
|  | 	 * This is useful if you want to suppress deprecation warnings when you're not using software components. | ||||||
|  | 	 * | ||||||
|  | 	 * <p>Experimental API: Will be removed in Loom 0.12 together with the deprecated POM generation functionality. | ||||||
|  | 	 * | ||||||
|  | 	 * @param publication the maven publication | ||||||
|  | 	 */ | ||||||
|  | 	@ApiStatus.Experimental | ||||||
|  | 	void disableDeprecatedPomGeneration(MavenPublication publication); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -25,10 +25,12 @@ | ||||||
| package net.fabricmc.loom.configuration; | package net.fabricmc.loom.configuration; | ||||||
| 
 | 
 | ||||||
| import java.lang.reflect.Method; | import java.lang.reflect.Method; | ||||||
|  | import java.util.Collections; | ||||||
| import java.util.HashSet; | import java.util.HashSet; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.Optional; | import java.util.Optional; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  | import java.util.WeakHashMap; | ||||||
| import java.util.concurrent.atomic.AtomicBoolean; | import java.util.concurrent.atomic.AtomicBoolean; | ||||||
| 
 | 
 | ||||||
| import groovy.util.Node; | import groovy.util.Node; | ||||||
|  | @ -49,6 +51,7 @@ public final class MavenPublication { | ||||||
| 			JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME, "compile", | 			JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME, "compile", | ||||||
| 			JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME, "runtime" | 			JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME, "runtime" | ||||||
| 	); | 	); | ||||||
|  | 	private static final Set<Publication> EXCLUDED_PUBLICATIONS = Collections.newSetFromMap(new WeakHashMap<>()); | ||||||
| 
 | 
 | ||||||
| 	private MavenPublication() { | 	private MavenPublication() { | ||||||
| 	} | 	} | ||||||
|  | @ -88,7 +91,7 @@ public final class MavenPublication { | ||||||
| 					continue; | 					continue; | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				if (hasSoftwareComponent(publication)) { | 				if (hasSoftwareComponent(publication) || EXCLUDED_PUBLICATIONS.contains(publication)) { | ||||||
| 					continue; | 					continue; | ||||||
| 				} else if (!reportedDeprecation.get()) { | 				} else if (!reportedDeprecation.get()) { | ||||||
| 					var deprecationHelper = LoomGradleExtension.get(project).getDeprecationHelper(); | 					var deprecationHelper = LoomGradleExtension.get(project).getDeprecationHelper(); | ||||||
|  | @ -142,4 +145,8 @@ public final class MavenPublication { | ||||||
| 			} | 			} | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	public static void excludePublication(Publication publication) { | ||||||
|  | 		EXCLUDED_PUBLICATIONS.add(publication); | ||||||
|  | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -32,6 +32,7 @@ import org.gradle.api.file.ConfigurableFileCollection; | ||||||
| import org.gradle.api.file.RegularFileProperty; | import org.gradle.api.file.RegularFileProperty; | ||||||
| import org.gradle.api.provider.ListProperty; | import org.gradle.api.provider.ListProperty; | ||||||
| import org.gradle.api.provider.Property; | import org.gradle.api.provider.Property; | ||||||
|  | import org.gradle.api.publish.maven.MavenPublication; | ||||||
| 
 | 
 | ||||||
| import net.fabricmc.loom.api.LoomGradleExtensionAPI; | import net.fabricmc.loom.api.LoomGradleExtensionAPI; | ||||||
| import net.fabricmc.loom.api.MixinApExtensionAPI; | import net.fabricmc.loom.api.MixinApExtensionAPI; | ||||||
|  | @ -152,6 +153,11 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA | ||||||
| 
 | 
 | ||||||
| 	protected abstract LoomFiles getFiles(); | 	protected abstract LoomFiles getFiles(); | ||||||
| 
 | 
 | ||||||
|  | 	@Override | ||||||
|  | 	public void disableDeprecatedPomGeneration(MavenPublication publication) { | ||||||
|  | 		net.fabricmc.loom.configuration.MavenPublication.excludePublication(publication); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	// This is here to ensure that LoomGradleExtensionApiImpl compiles without any unimplemented methods | 	// This is here to ensure that LoomGradleExtensionApiImpl compiles without any unimplemented methods | ||||||
| 	private final class EnsureCompile extends LoomGradleExtensionApiImpl { | 	private final class EnsureCompile extends LoomGradleExtensionApiImpl { | ||||||
| 		private EnsureCompile() { | 		private EnsureCompile() { | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ import org.gradle.api.file.ConfigurableFileCollection; | ||||||
| import org.gradle.api.file.RegularFileProperty; | import org.gradle.api.file.RegularFileProperty; | ||||||
| import org.gradle.api.provider.ListProperty; | import org.gradle.api.provider.ListProperty; | ||||||
| import org.gradle.api.provider.Property; | import org.gradle.api.provider.Property; | ||||||
|  | import org.gradle.api.publish.maven.MavenPublication; | ||||||
| 
 | 
 | ||||||
| import net.fabricmc.loom.api.LoomGradleExtensionAPI; | import net.fabricmc.loom.api.LoomGradleExtensionAPI; | ||||||
| import net.fabricmc.loom.api.MixinApExtensionAPI; | import net.fabricmc.loom.api.MixinApExtensionAPI; | ||||||
|  | @ -137,4 +138,10 @@ public class MinecraftGradleExtension implements LoomGradleExtensionAPI { | ||||||
| 		reportDeprecation(); | 		reportDeprecation(); | ||||||
| 		return parent.getSetupRemappedVariants(); | 		return parent.getSetupRemappedVariants(); | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	@Override | ||||||
|  | 	public void disableDeprecatedPomGeneration(MavenPublication publication) { | ||||||
|  | 		reportDeprecation(); | ||||||
|  | 		parent.disableDeprecatedPomGeneration(publication); | ||||||
|  | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue