Peter
08/19/2024, 7:29 AM> Failed to publish publication 'release' to repository 'mavenLocal'
> org.codehaus.plexus.util.xml.pull.XmlPullParserException: in epilog non whitespace content is not allowed but got / (position: END_TAG seen ...</metadata>\n/... @Dchintal 13:2)Can someone help me with this please? Will post configuration in thread.
Peter
08/19/2024, 7:30 AMimport org.gradle.api.Action
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.publish.PublishingExtension
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.assign
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.create
import org.gradle.kotlin.dsl.get
private const val EXTENSION_NAME = "myLibrary"
interface MyLibraryExtension {
var artifact: Artifact?
}
data class Artifact(
val id: String,
val version: String,
val group: String = "com.some.library"
) {
val dependency = "$group:$id:$version"
}
fun Project.myLibrary(configure: Action<MyLibraryExtension>) {
extensions.configure(EXTENSION_NAME, configure)
}
class MyLibraryPlugin : Plugin<Project> {
override fun apply(project: Project) {
val extension = project.extensions.create<MyLibraryExtension>(EXTENSION_NAME)
project.afterEvaluate {
val artifact = extension.artifact ?: error("Artifact version not set")
configurePublishing(artifact)
}
}
private fun Project.configurePublishing(artifact: Artifact) {
apply<MavenPublishPlugin>()
project.group = artifact.group
configure<PublishingExtension> {
publications {
create<MavenPublication>("release") {
version = artifact.version
artifactId = artifact.id
afterEvaluate {
from(components["release"])
}
pom {
name = artifact.id
}
}
}
repositories {
maven {
name = "GitHubPackages"
url = uri("<https://maven.pkg.github.com/redacted>")
credentials {
username = System.getenv("GPR_USER")
password = System.getenv("GPR_TOKEN")
}
}
}
}
}
}Peter
08/19/2024, 7:52 AM