do not allow certain dependencies in published pom

This commit is contained in:
alexcrea 2025-07-17 17:00:45 +02:00
parent d347d7b766
commit 2436a84272
Signed by: alexcrea
GPG key ID: E346CD16413450E3

View file

@ -1,5 +1,7 @@
import cn.lalaki.pub.BaseCentralPortalPlusExtension import cn.lalaki.pub.BaseCentralPortalPlusExtension
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import groovy.util.Node
import groovy.util.NodeList
import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins { plugins {
@ -245,6 +247,14 @@ object Meta {
const val snapshot = "https://s01.oss.sonatype.org/content/repositories/snapshots/" const val snapshot = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
} }
val disalowedDependency = setOf(
"nms-common", "kotlin-stdlib",
"v1_17R1",
"v1_18R1", "v1_18R2", "v1_19R1", "v1_19R2", "v1_19R3",
"v1_20R1", "v1_20R2", "v1_20R3", "v1_20R4",
"v1_21R1", "v1_21R2", "v1_21R3", "v1_21R4", "v1_21R5"
)
publishing { publishing {
repositories { repositories {
maven { maven {
@ -260,6 +270,16 @@ publishing {
from(components["kotlin"]) from(components["kotlin"])
artifact(tasks["sourcesJar"]) artifact(tasks["sourcesJar"])
artifact(tasks["javadocJar"]) artifact(tasks["javadocJar"])
versionMapping {
usage("java-api") {
fromResolutionOf("runtimeClasspath")
}
usage("java-runtime") {
fromResolutionResult()
}
}
pom { pom {
name.set(project.name) name.set(project.name)
description.set(Meta.desc) description.set(Meta.desc)
@ -292,6 +312,24 @@ publishing {
issueManagement { issueManagement {
url.set("https://github.com/${Meta.githubRepo}/issues") url.set("https://github.com/${Meta.githubRepo}/issues")
} }
withXml {
val dependenciesNode = (asNode().get("dependencies") as NodeList)[0] as Node
val toRemove = ArrayList<Node>()
for (child in dependenciesNode.children()) {
val artifactNode = ((child as Node).get("artifactId") as NodeList)[0] as Node
val artifactID = artifactNode.value() as String
if(disalowedDependency.contains(artifactID)) {
toRemove.add(child)
}
}
for (node in toRemove) {
dependenciesNode.remove(node)
}
}
} }
} }
} }