All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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