Add option to disable deprecated POM generation and the warnings together with it (#487)
parent
1a060df4bf
commit
ea8ee4c21a
|
@ -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 New Issue