当前位置: 首页 > news >正文

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 destfrom(moduleName + "/dist/springBoot.sh")into destrename { String fileName ->fileName.replace('_'.concat(dest.replace(transferPath, '')), '') } // 被from指向的文件都会执行rename方法}}
}

相关文章:

gradle构建工具

setting.gradle // settings.gradle rootProject.name my-project // 指定根项目名称include subproject1, subproject2 // 指定子项目名称,可选jar包名称 方式一 jar {archiveBaseName my-application // 设置 JAR 文件的基本名称archiveVersion 1.0 // 设置…...

Java需要英语基础吗?

Java编程语言本身并不要求必须有很强的英语基础,因为Java的语法和逻辑是独立于任何特定语言的。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学&am…...

14-36 剑和诗人10 - 用LLM构建 AI 代理平台

介绍 在当今快速发展的技术环境中,大型语言模型 (LLM) 和 AI 代理正在改变我们与信息交互、实现流程自动化以及应对不同行业复杂挑战的方式。随着这些强大的模型不断发展,对能够无缝集成和协调它们的强大平台的需求变得越来越重要。 让我们深入研究设计…...

如何在Java中实现批量数据处理

如何在Java中实现批量数据处理 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 引言 在大数据时代,处理大量数据是许多应用程序中必不可少的需…...

项目部署_持续集成_Jenkins

1 今日内容介绍 1.1 什么是持续集成 持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干 持续集成的组成要素 一个自动构建过程, 从检出代码、 编译构建…...

如何选择TikTok菲律宾直播网络?

为了满足用户对于实时互动的需求,TikTok推出了直播功能,让用户能够与粉丝即时交流。本文将探讨如何选择适合的TikTok菲律宾直播网络,并分析OgLive是否是值得信赖的选择。 TikTok菲律宾直播网络面临的挑战 作为全球领先的短视频平台&#xff…...

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method--论文笔记

论文笔记 资料 1.代码地址 https://github.com/iBelieveCJM/pseudo_label-pytorch 2.论文地址 3.数据集地址 论文摘要的翻译 本文提出了一种简单有效的深度神经网络半监督学习方法。基本上,所提出的网络是以有监督的方式同时使用标记数据和未标记数据来训练的…...

信息收集-arping

信息收集-arping 简介 arping 是一个用于发送 ARP 请求和接收 ARP 回复的工具。它通常用于检查网络中的 IP 地址是否被使用,或发现网络中的重复 IP 地址。arping 工具类似于 ping 命令,但它使用的是 ARP 协议而不是 ICMP 协议。在 Kali Linux 中&#…...

一文了解常见DNS问题

当企业的DNS出现故障时,为不影响企业的正常运行,团队需要能够快速确定问题的性质和范围。那么有哪些常见的DNS问题呢? 域名解析失败: 当您输入一个域名,但无法获取到与之对应的IP地址,导致无法访问相应的网…...

TCP/IP 网络协议族分层

TCP/IP协议族 TCP/IP不单是TCP和IP两个协议,TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,当然,也包括TCP、IP协议 它将软件通信过程抽象化为四个抽象层&#…...

Qt:5.QWidget属性介绍(Enabled属性-控件可用性设置、geometry属性-控件位置/大小设置)

目录 一、 QWidget属性的介绍: 二、Enabled属性-控件可用性设置: 2.1Enabled属性的介绍: 2.2获取控件当前可用状态的api——isEnabled(): 2.3设置控件当前的可用状态的api—— setEnabled() : 2.4 实例&#xff…...

NoSQL 非关系型数据库 Redis 的使用:

redis是基于内存型的NoSQL 非关系型数据库,本内容只针对有基础的小伙伴, 因为楼主不会做更多的解释,而是记录更多的技术接口使用,毕竟楼主不是做教学的,没有教学经验。 关于redis的介绍请自行搜索查阅。 使用redis数据…...

python库(5):Psutil库实现系统和硬件监控工具

1 psutil简介 psutil(process and system utilities)是一个跨平台库,用于检索运行中进程和系统利用率(包括 CPU、内存、磁盘、网络等)的信息,可以提供丰富的系统监控功能。 2 psutil安装 pip install -i …...

实验四 图像增强—灰度变换之直方图变换

一.实验目的 1.掌握灰度直方图的概念及其计算方法; 2.熟练掌握直方图均衡化计算过程;了解直方图规定化的计算过程; 3.了解色彩直方图的概念和计算方法 二.实验内容: …...

使用el-col和el-row布局,有版心,一页有两栏布局 三栏布局 四栏布局 使用vue动态渲染元素

使用Vue结合Element UI的el-row和el-col组件来实现版心布局,并动态渲染不同栏数的布局,可以通过以下步骤实现: 定义版心容器:使用el-container来定义整个页面的容器,其中el-header、el-main、el-footer分别定义头部、主…...

中软国际加入龙蜥社区,促进“技术+生态”双向赋能

近日,中软国际有限公司(简称“中软国际”)签署了 CLA(Contributor License Agreement,贡献者许可协议),正式加入龙蜥社区(OpenAnolis)。 中软国际创立于 2000 年&#x…...

adobe pdf设置默认打开是滚动而不是单页视图

上班公司用adobe pdf,自己还不能安装其它软件。 每次打开pdf,总是默认单页视图,修改滚动后,下次打开又 一样,有时候比较烦。 后面打开编辑->首选项, 如下修改,下次打开就是默认滚动了...

React Hooks 深度解析

Hooks简介 诞生背景: 在React 16.8之前的版本中,组件主要分为函数组件和类组件两大类。函数组件简单轻量,但不支持状态(state)和生命周期方法;而类组件虽然功能强大,但编写和维护起来相对复杂。…...

14-32 剑和诗人6 - GenAI 重塑 SRE 和云工程实践

在不断发展的软件开发和运营领域,各种学科的融合催生了新的范式和实践,旨在简化流程、加强协作和推动创新。DevSecOps、站点可靠性工程 (SRE)、平台工程和云工程已成为支持现代软件系统的重要支柱,每个支柱都解决了独特的挑战和要求。 然而&…...

Towards Deep Learning Models Resistant to Adversarial Attacks

这篇论文的主要内容是关于开发对抗攻击具有抗性的深度学习模型。对抗攻击是通过对输入数据进行微小且精心设计的扰动,诱使深度学习模型做出错误的预测。这种攻击在图像识别、语音识别和自然语言处理等任务中尤为突出。 这篇论文的主要内容是关于开发对抗攻击具有抗…...

Shiro RememberMe反序列化漏洞深度解析与实战利用

1. 这个漏洞不是“老古董”,而是理解Java安全边界的活教材很多人看到CVE-2016-4437,第一反应是“Shiro都淘汰了,还讲这个干啥?”——我去年在给一家做政企内部系统的客户做渗透复测时,就遇到过一个上线三年的审批平台&…...

AI智能体到底强在哪?为什么大家开始从“养龙虾”转向“养马”

那么AI智能体的核心能力是什么? 1、理解需求 它能分析你的真实意图,而不是只看表面的文字,比如让它整理这个月的消费情况,它明白之后,会读取账单,做分类统计,生成总结,最后输出图表。…...

【CP-05】RTE运行时环境 - SWC的操作系统接口

CP-05_RTE运行时环境【CP-05】RTE运行时环境 - SWC的“操作系统接口”前言在AUTOSAR架构中,RTE(Runtime Environment,运行时环境)是一个常被提及却难以理解的概念。它像是应用层软件组件(SW-C)与底层基础软…...

Office RibbonX Editor:让Office界面定制变得像搭积木一样简单

Office RibbonX Editor:让Office界面定制变得像搭积木一样简单 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbon…...

CentOS服务器上VNC连接失败?手把手教你排查并修复个人端口问题(附重启命令)

CentOS服务器VNC连接故障深度排查指南:从原理到实战当你在深夜赶项目时,突然发现VNC连接不上服务器,那种焦虑感我深有体会。去年参与半导体器件仿真项目时,我也曾被这个问题困扰整整两天。本文将分享一套经过实战检验的排查方法论…...

双系统Ubuntu磁盘告急?别重装!用GParted无损扩容保姆级教程(附U盘启动盘制作)

双系统Ubuntu磁盘告急?别重装!用GParted无损扩容保姆级教程(附U盘启动盘制作)当你在Windows和Ubuntu双系统环境下工作时,是否遇到过这样的窘境:当初安装时给Ubuntu分配的空间捉襟见肘,而Windows…...

保姆级避坑指南:在Ubuntu 22.04上搞定ROS2 Humble、PX4与Gazebo的联合仿真(附Empy版本降级)

保姆级避坑指南:Ubuntu 22.04下ROS2 Humble与PX4联合仿真的21个关键陷阱当你在Ubuntu 22.04上第一次尝试搭建ROS2 Humble、PX4与Gazebo的联合仿真环境时,可能会遇到比预期更多的挑战。这不是一个简单的"复制粘贴命令就能完成"的任务——版本冲…...

关联规则挖掘在Calabi-Yau流形Hodge数分析中的应用与复现

1. 项目概述:当数据挖掘遇见高维几何在理论物理和代数几何的交叉领域,Calabi-Yau流形一直扮演着核心角色。这些具有特殊拓扑结构的空间,不仅是弦理论中额外维度紧化的关键候选者,其本身丰富的数学性质也吸引着无数研究者。然而&am…...

基于随机森林的低成本传感器机器学习校准实践指南

1. 项目概述:当低成本传感器遇上机器学习校准在物联网和智能感知系统铺天盖地的今天,低成本传感器几乎无处不在。从监测办公室的空气质量,到追踪城市街道的噪音污染,再到农业大棚里的温湿度控制,这些价格亲民的“小眼睛…...

Qri高级功能:如何使用JSON Schema验证和描述数据集结构

Qri高级功能:如何使用JSON Schema验证和描述数据集结构 【免费下载链接】qri youre invited to a data party! 项目地址: https://gitcode.com/gh_mirrors/qr/qri Qri是一个强大的开源数据协作工具,它提供了丰富的功能来帮助用户管理、共享和验证…...