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

Gradle 构建jar包,依赖和配置分离

项目环境:
springboot 2.1.5-release
gradle 6.7.x
idea2020.3


// 将依赖包复制到lib目录
task copyJar(type: Copy) {
    // 清除现有的lib目录
    delete "$buildDir\\libs\\lib"
    from configurations.runtimeClasspath
    into "$buildDir\\libs\\lib"
    from configurations.compileClasspath
    into "$buildDir\\libs\\lib"
}

// 拷贝配置文件
task copyConfigFile(type: Copy) {
    // 清除现有的配置目录
    delete "$buildDir\\libs\\config"
    from('src/main/resources')
    into 'build/libs/config'
}

// 配置bootJar进行打包
bootJar {
    // jar包名称,默认是settings.gradle下的工程名 rootProject.name = 'my-service'
    archiveBaseName = 'my-service'
    // jar包版本号
    archiveVersion = '0.0.1'
    // 排除所有的jar
    excludes = ["*.jar"]
    // lib目录的清除和复制任务
    dependsOn copyJar
    // 配置目录的清除和复制任务
    dependsOn copyConfigFile

    // 指定依赖包的路径
    manifest {
        attributes "Manifest-Version": 1.0,
                'Class-Path': configurations.runtimeClasspath.files.collect { "lib/$it.name" }.join(' ')
    }
}

 

将上面的内容复制到build.gradle文件中

直线gradle build即可

 

相关文章:

  • springCloud2020.0.2+springboot2.4.5接入consul注册中心和服务中心
  • 警告: ParameterizedTypeImpl是内部专用 API, 解决方式
  • springCloud-gateway按照服务名动态路由的改造(一)
  • springCloud-gateway按照服务名动态路由的改造(二)
  • springCloud-gateway按照服务名动态路由的改造(三)
  • 前端传入数字,后端用枚举接收统一处理
  • Jackson2ObjectMapperBuilderCustomizer不生效解决
  • feign如何启用httpClient、OKhttp
  • easyExcel读数据后在写入另一个excel
  • nginx 丢失端口问题
  • centos 安装docker及docker-compose
  • 多个docker-compose文件共享一个网络
  • idea 远程调试springboot项目
  • spring-cloud-consul配置中心获取指定路径下的配置
  • 将red5项目部署到tomcat下,并且red5项目嵌入到J2EE项目中
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • JavaScript-Array类型
  • java第三方包学习之lombok
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • python3 使用 asyncio 代替线程
  • Python十分钟制作属于你自己的个性logo
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Vue官网教程学习过程中值得记录的一些事情
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 记一次和乔布斯合作最难忘的经历
  • 前端性能优化--懒加载和预加载
  • 如何用vue打造一个移动端音乐播放器
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 提醒我喝水chrome插件开发指南
  • 微信小程序实战练习(仿五洲到家微信版)
  • 一个完整Java Web项目背后的密码
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​ArcGIS Pro 如何批量删除字段
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​iOS安全加固方法及实现
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (pojstep1.3.1)1017(构造法模拟)
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (黑马C++)L06 重载与继承
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (七)c52学习之旅-中断
  • (一一四)第九章编程练习
  • (转)大型网站架构演变和知识体系
  • (转)一些感悟
  • .Net 路由处理厉害了
  • @Bean注解详解
  • @ModelAttribute 注解
  • [ C++ ] STL---stack与queue
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [145] 二叉树的后序遍历 js