
com.github.jchanghong.ends.kt Maven / Gradle / Ivy
The newest version!
package com.github.jchanghong
import org.gradle.api.Project
import org.gradle.api.publish.PublishingExtension
import org.gradle.api.publish.maven.tasks.GenerateMavenPom
import org.gradle.api.publish.maven.tasks.PublishToMavenRepository
import org.gradle.plugins.signing.SigningExtension
internal fun end(project: Project, myExtension: JchPluginExtension) {
project.pluginManager.withPlugin("com.gradle.plugin-publish") {
val signingExtension = project.extensions.findByType(SigningExtension::class.java)
project.tasks.all {
if ("JCH" in it.name) {
it.enabled=false
log2("remove "+it.name,project,myExtension.logInfo)
}
}
project.tasks.withType(org.gradle.api.publish.maven.tasks.GenerateMavenPom::class.java).configureEach {
if (it.pom == null) {
it.doFirst {
val generateMavenPom = it as GenerateMavenPom
setMavenPOM(generateMavenPom.pom)
}
it.doLast {
// val name="generatePomFileForPluginMavenPublication"
val removeSuffix = it.name.removePrefix("generatePomFileFor").removeSuffix("Publication")
val publishingExtension =
project.extensions.findByType(PublishingExtension::class.java)?.publications
?.firstOrNull { p -> removeSuffix == p.name.capitalize() }
if (signingExtension != null && publishingExtension != null) {
runCatching {
val sign = signingExtension.sign(publishingExtension)
sign.forEach {
// project.logger.quiet("generate:" + it.name + it.filesToSign.first().absolutePath)
it.generate()
}
sign
}
}
}
}
}
}
project.tasks.withType(PublishToMavenRepository::class.java).configureEach {
// log2(" "+it.name+it.description,project,true)
if (it.repository == null) {
// log2("createPublishRepositoryHandler "+it.name,project,true)
it.repository= createPublishRepositoryHandler(project.repositories,project)
}
}
project.pluginManager.withPlugin("maven-publish") {
log2("has plugin maven-publish add MavenPublishNexusStagingPlugin", project, myExtension.logInfo)
project.pluginManager.apply(name.remal.gradle_plugins.plugins.publish.nexus_staging.MavenPublishNexusStagingPlugin::class.java)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy