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

com.github.jchanghong.JchGradlePlugin.kt Maven / Gradle / Ivy

The newest version!
/*
 * This Kotlin source file was generated by the Gradle 'init' task.
 */
package com.github.jchanghong

import org.gradle.api.Plugin
import org.gradle.api.Project

internal fun log2(log: Any?, project: Project, logInfo: Boolean) {
    val get = project.properties.get("jch.debug").toString().toBoolean()
    if (logInfo) {
        project.logger.quiet("setProject<<${project.name}>>:${log.toString()}")
    } else {
        if (get) {
            project.logger.quiet("setProject<<${project.name}>>:${log.toString()}")
        }
    }
}

open class JchPluginExtension {
    companion object {
        /** org.springframework.boot:spring-boot-starter-*/
        const val springBootDependencies = "org.springframework.boot:spring-boot-starter-"
    }

    var logInfo = false
    var springBootversion = "2.3.3.RELEASE"
    var kotlinVersion = "1.4.10"
    var okhttpVersion = "4.9.0"

    /** 强制设置版本号,key是 group:name,或者group*/
    var mavenVersionMap: MutableMap = mutableMapOf()

    /** org.springframework.boot:spring-boot-starter-{}*/
    var springBootDependencies = arrayListOf("web")
    var message = "1Hello from GreetingPlugin"
}

/**
 * A simple 'hello world' plugin.
 * 一个工程一个对象实例
 */
class JchGradlePlugin : Plugin {
    lateinit var myExtension: JchPluginExtension
    override fun apply(project: Project) {
        myExtension = project.extensions.create("jch", JchPluginExtension::class.java)
        setPropertie(project, myExtension)
        setRepositories(project, myExtension)
        addPlugin(project, myExtension)
        project.afterEvaluate { afterEvaluate(it) }
    }

    private fun afterEvaluate(project: Project) {
        log2("afterEvaluate()", project, myExtension.logInfo)
        configurationPlugin(project, myExtension)
        setdependencies(project, myExtension)
        addMyTasks(project, myExtension)
        project.pluginManager.withPlugin("java-gradle-plugin") {
            setjavagradlepluginpublush(project, myExtension)
        }
        project.pluginManager.withPlugin("maven-publish") {
            log2("has plugin maven-publish add MavenPublishNexusStagingPlugin,sign", project, myExtension.logInfo)
            project.pluginManager.apply(name.remal.gradle_plugins.plugins.publish.nexus_staging.MavenPublishNexusStagingPlugin::class.java)
            project.tasks.findByName("releaseNexusRepositories")!!.dependsOn("publish")
        }
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy