springboot基于bootJar的jar和resources分离,gradle打包配置

在项目根目录build.gradle中设置:

configure(allprojects) { project ->
// 将依赖包复制到lib目录
    task copyBootJar(type: Copy, dependsOn: ['jar']) {
        // 分组到build
        group "build"
        from configurations.api {
            canBeResolved = true
        }
        // 清除现有的lib目录
        delete "$buildDir/libs/lib"
        from configurations.getByName('runtimeClasspath')
        into "$buildDir/libs/lib"
    }
    
    // 拷贝resources资源文件
    task copyBootResources(type: Copy, dependsOn: 'copyBootJar') {
        // 分组到build
        group "build"
        // 清除现有的lib目录
        delete "$buildDir/libs/resources"

        from fileTree(dir: 'src/main/resources')
        filteringCharset = 'UTF-8'
        into "$buildDir/libs/resources"
    }
    
    // 配置bootJar进行打包
    tasks.named("bootJar") {
        // lib目录的清除和复制任务
        dependsOn copyBootJar
        dependsOn copyBootResources
        
        def libStr = ''
        // configurations 只能放入任务中
        doFirst() {
            manifest {
                if (configurations.getByName('runtimeClasspath').isCanBeResolved()) {
                    // 获取运行时jar包
                    libStr = configurations.getByName('runtimeClasspath').getFiles().sort().collect { "lib/$it.name" }.join(' ') + " resources/"
                    // println(libStr)
                }
                attributes(
                        'Implementation': DEVELOPER_NAME,
                        'Specification-Version': DEVELOPER_NAME,
                        'Implementation-Vendor': DEVELOPER_ID,
                        'Implementation-ProductID': project.name,
                        'Compile-DateTime': new Date().format('yyyy-MM-dd HH:mm:ss'),
                        'Compile-User': DEVELOPER_NAME,
                        'Class-Path': "$libStr"
                )
                
            }
        }
        mainClass = "${MainClassName}"
        
        // 排除所有的jar和resources(jar和resources分离需打开)
        excludes = ["*.jar","*.properties","*.xml","*.yml","mybatis/","i18n/"]
      
    }

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值