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方法
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/774543.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云RDS云数据库库表恢复操作

最近数据库中数据被人误删了,记录一下恢复操作方便以后发生时进行恢复. 1.打开控制台,进入云数据库实例. 2.进入实例后 ,点击右侧的备份恢复,然后看一下备份时间点,中间这边都是阿里云自动备份的备份集,基本都是7天一备…

与Flat Ads相约ChinaJoy 2024,共探全球化增长

在当今全球数字化浪潮的推动下,游戏产业作为文化与技术融合的先锋,正以前所未有的速度跨越国界,开启全球化发展的新篇章。随着第二十一届ChinaJoy的临近,全球的目光再次聚焦于上海新国际博览中心,这里即将成为数字娱乐与科技创新碰撞与交融的璀璨舞台。 而在这场盛会上,Flat A…

Python酷库之旅-第三方库Pandas(004)

目录 一、用法精讲 5、pandas.DataFrame.to_csv函数 5-1、语法 5-2、参数 5-3、功能 5-4、返回值 5-5、说明 5-6、用法 5-6-1、代码示例 5-6-2、结果输出 6、pandas.read_fwf函数 6-1、语法 6-2、参数 6-3、功能 6-4、返回值 6-5、说明 6-6、用法 6-6-1、代码…

某积分商城任意金额支付漏洞分析利用及思考

扫码领取网安教程 大部分开发人员在开发时都会有一种思维惯性,传参处处有校验处处都可信,但这个等式并非恒成立 前言 这个漏洞是在工作中例行渗透测试的时候发现的,虽然前端做了防篡改措施,但这是很经典的没有后端校验导致的任意…

【CSAPP】-attacklab实验

目录 实验目的与要求 实验原理与内容 实验设备与软件环境 实验过程与结果(可贴图) 实验总结 实验目的与要求 1. 强化机器级表示、汇编语言、调试器和逆向工程等方面基础知识,并结合栈帧工作原理实现简单的栈溢出攻击,掌握其基…

sql注入问题批量处理

问题:SQL注入修改,历史代码全是${};无法修改的比如表名,列名,动态排序之类的不改,其他的都要修改完成 背景:新公司第一个任务就是SQL注入的修改,历史sql全部都是${},一个个调整不太合适只能批量…

ubuntu 安装说明

最近准备学习Linux,所以下载了最新的ubuntu server版本24.04,将安装步骤记录下来供参考。 1.安装 挂载光驱和iso文件,启动虚拟机。启动后,你会看到 GRUB 菜单上有两个选项: Try or Install Ubuntu Server 和 Test mem…

六西格玛培训公司:实战教学,让品质管理不再纸上谈兵!

在追求卓越与品质管理的征途上,六西格玛培训公司张驰咨询凭借其深厚的行业底蕴与前瞻性的战略眼光,成为了引领行业变革的重要力量。公司不仅深谙六西格玛精髓,更将这一先进的质量管理方法论转化为推动企业转型升级的强大动力,以“…

碳课堂|搞清楚碳足迹,只看这篇文章就够了

碳足迹管理是碳达峰碳中和的重要政策工具,2023年12月,国家发展改革委、工信部、国家市场监管总局、住房城乡建设部、交通运输部等部门联合印发《关于加快建立产品碳足迹管理体系的意见》,对产品碳足迹管理各项重点任务作出系统部署。 推动碳…

泛型 + 反射 + 注解 + 动态代理 + 设计模式 + Factory(BeanFactory,FactoryBean)

1.泛型 编译器可以对泛型参数进行检测&#xff0c;并且通过泛型参数可以指定传入的对象类型。比如 ArrayList<Person> persons new ArrayList<Person>() 这行代码就指明了该 ArrayList 对象只能传入 Person 对象&#xff0c;如果传入其他类型的对象就会报错。 原…

爬虫进阶:Selenium与Ajax的无缝集成

爬虫与Ajax的挑战 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分内容。这为用户带来了更好的体验&#xff0c;但同时也使得爬虫在抓取数据时面临以下挑战&#xff1a; 动态内容加载&#xff…

【基础算法】UE中实现轮播

本期作者&#xff1a;尼克 易知微3D引擎技术负责人 当前N 总数M 从0到M-1 从1到M 感谢阅读&#xff0c;以上内容均由易知微3D引擎团队原创设计&#xff0c;以及易知微版权所有&#xff0c;转载请注明出处&#xff0c;违者必究&#xff0c;谢谢您的合作。申请转载授权后台回复【…

C++基石:掌握高效编程的艺术

C 关于命名空间&#xff1a;namespace 上述文档详细介绍了C标准库&#xff08;Standard C Library&#xff09;的一些关键约定&#xff0c;这些约定不仅帮助开发者理解如何正确使用库中的功能&#xff0c;也明确了实现者在设计库时的灵活性和限制。下面是对文档中提到的几个要点…

基于Java中的SSM框架实现物流管理系统项目【项目源码+论文说明】

基于Java中的SSM框架实现物流管理系统演示 摘要 企业的发展离不开物流的运输&#xff0c;在一个大型的企业中&#xff0c;商品的生产和建设&#xff0c;推广只是前期的一些工作&#xff0c;在后期的商品销售和物流方面的建立&#xff0c;才能让一个企业得到大力的发展。 企业…

Mysql中间件和高可用

文章目录 一、MySQL中间件代理服务器MycatMycat应用场景Mycat部署 实现读写分离 二、MySQL高可用高可用解决方案MHA高可用实现MHA 一、MySQL中间件代理服务器 数据库主要分为两大类&#xff1a;关系型数据库与 NoSQL 数据库&#xff08;非关系型数据库&#xff09;。 数据库主…

MinIO:开源对象存储解决方案的领先者

MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统&#xff0c;致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释&#xff1a;MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适…

vue 模糊查询加个禁止属性

vue 模糊查询加个禁止属性 父组件通过属性传&#xff0c;是否禁止输入-------默认可以输入

Quantlab5.0:一切围绕可实盘策略驱动开发

原创文章第573篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 2024年上半年即将结束&#xff0c;开始准备星球下半年的工作。 目前设想的——Quantlab5.0&#xff0c;之所以升级一个大版本&#xff0c;与4.x有很大不同。 5.0专注策略开发&…

高效任务分配的常见7步法

高效的任务分配有助于优化资源配置&#xff0c;提升开发效率与质量&#xff0c;降低成本和项目风险&#xff0c;最终提高客户满意度。如果任务分配不合理&#xff0c;可能导致资源浪费&#xff0c;造成项目延期和成本超支&#xff0c;影响工作质量&#xff0c;增加项目风险。 因…

小超市进销存软件永久免费版,免费使用!

在快节奏的商业环境中&#xff0c;小超市的管理效率直接关系到经营成本和盈利空间&#xff0c;为了帮助广大中小超市业主解决进销存管理的难题&#xff0c;象过河软件推出小超市进销存软件永久免费版&#xff0c;可让超市管理者长期免费使用。 象过河开发的小超市进销存软件专为…