gradle构建工具

setting.gradle

// settings.gradle
rootProject.name = 'my-project' // 指定根项目名称

include 'subproject1', 'subproject2' // 指定子项目名称,可选

jar包名称

方式一

jar {
    archiveBaseName = 'my-application' // 设置 JAR 文件的基本名称
    archiveVersion = '1.0' // 设置版本号
}

方式二:会动态地从根项目的额外属性(rootProject.ext)中获取jarName属性的值,并将其用作生成 JAR 文件的基本名称

// 项目build.gradle
jar {
        baseName = rootProject.ext.jarName
    }

// 根项目build.gradle配置
ext {
		springBootVersion = "2.1.14.RELEASE"
		jarName = rootProject.name // 根项目的名称,就是setting.gradle配置中的rootProject.name值
		epEntryDir = project.hasProperty('EP_ENTRY_DIR') ? String.valueOf(EP_ENTRY_DIR) : 'src'
}
	

自定义gradle任务

task buildCommonBillJar 定义了一个自定义Gradle任务
type: GradleBuild:这里指定了任务的类型为 GradleBuild,它表明这是一个 Gradle 内置任务
dependsOn: ['lgsa-common-bill-mgr-server:build', clean]:这里定义了任务的依赖关系,指定了该任务依赖于其他任务lgsa-common-bill-mgr-server:build和clean。任务会在这些任务执行完毕后才开始执行。
mustRunAfter 是 Gradle 的依赖配置之一,用于指定一个任务在另一个任务之后执行。在这个例子中,它表明 build 任务必须在 clean 任务之后执行。
在这里插入图片描述

build.mustRunAfter clean // 
task buildTaskJar(type: GradleBuild, dependsOn: [
        'lgsa-common-bill-mgr-server:build', clean]
) {
	// doLast会在上面的构建执行完成才执行
    doLast {
        String jarName = "jarName"
        String moduleName = "jarName"
        buildWithEnvConfig(moduleName , jarName)
        file(moduleName + "/build").deleteDir() //删除当前目录 jarName/build 下的文件
    }
}
def buildWithEnvConfig (String moduleName , String jarName) {
    // 构建生成的jar包路径
    String jarPath = moduleName + "/build/libs"
    copy {
        from(jarPath)
        into moduleName + "/build"
        rename {
            String fileName -> jarName + '.jar'
        }// 会将copy过来的所有文件都执行rename命令
    }
    String transferPath = "build/" + moduleName + "/"
    delete(file(transferPath)) // 删除目录下的文件
    file(transferPath + "dev").mkdirs() // 创建目录
    file(transferPath + "test").mkdirs()
    file(transferPath + "prod").mkdirs()
    [transferPath + "dev", transferPath + "test", transferPath + "prod"].each { dest ->
        copy {
            from(moduleName + "/build/" + jarName + ".jar")
            into dest // copy from中的指定文件值dest目录下
            from(moduleName + "/dist/application_".concat(dest.replace(transferPath, '')).concat(".yml"))
            into dest
            from(moduleName + "/dist/springBoot.sh")
            into dest
            rename { String fileName ->
                fileName.replace('_'.concat(dest.replace(transferPath, '')), '') 
            } // 被from指向的文件都会执行rename方法
        }
    }
}

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值