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.provider.ListProperty;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.publish.maven.MavenPublication;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import net.fabricmc.loom.api.decompilers.LoomDecompiler;
|
||||
|
@ -184,4 +185,15 @@ public interface LoomGradleExtensionAPI {
|
|||
* @return the property controlling the setup of remapped variants
|
||||
*/
|
||||
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;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.WeakHashMap;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import groovy.util.Node;
|
||||
|
@ -49,6 +51,7 @@ public final class MavenPublication {
|
|||
JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME, "compile",
|
||||
JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME, "runtime"
|
||||
);
|
||||
private static final Set<Publication> EXCLUDED_PUBLICATIONS = Collections.newSetFromMap(new WeakHashMap<>());
|
||||
|
||||
private MavenPublication() {
|
||||
}
|
||||
|
@ -88,7 +91,7 @@ public final class MavenPublication {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (hasSoftwareComponent(publication)) {
|
||||
if (hasSoftwareComponent(publication) || EXCLUDED_PUBLICATIONS.contains(publication)) {
|
||||
continue;
|
||||
} else if (!reportedDeprecation.get()) {
|
||||
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.provider.ListProperty;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.publish.maven.MavenPublication;
|
||||
|
||||
import net.fabricmc.loom.api.LoomGradleExtensionAPI;
|
||||
import net.fabricmc.loom.api.MixinApExtensionAPI;
|
||||
|
@ -152,6 +153,11 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA
|
|||
|
||||
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
|
||||
private final class EnsureCompile extends LoomGradleExtensionApiImpl {
|
||||
private EnsureCompile() {
|
||||
|
|
|
@ -31,6 +31,7 @@ import org.gradle.api.file.ConfigurableFileCollection;
|
|||
import org.gradle.api.file.RegularFileProperty;
|
||||
import org.gradle.api.provider.ListProperty;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.publish.maven.MavenPublication;
|
||||
|
||||
import net.fabricmc.loom.api.LoomGradleExtensionAPI;
|
||||
import net.fabricmc.loom.api.MixinApExtensionAPI;
|
||||
|
@ -137,4 +138,10 @@ public class MinecraftGradleExtension implements LoomGradleExtensionAPI {
|
|||
reportDeprecation();
|
||||
return parent.getSetupRemappedVariants();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disableDeprecatedPomGeneration(MavenPublication publication) {
|
||||
reportDeprecation();
|
||||
parent.disableDeprecatedPomGeneration(publication);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue