题外话:gradle工程的打包(源码包)
打包的时候把bulid目录以及 .gradle目录删掉,使工程只有代码,占据空间较少。

打瘦包:不带依赖

jar {
    manifest {
        attributes 'Built-By': System.getProperty('user.name'),
                'Build-Jdk': System.getProperty('java.version')
    }
}

在这里插入图片描述

打包jar:携带依赖

//第一种方法:未测试
jar {
    String runtimePath = ''
    configurations.runtime. each {runtimePath = runtimePath + " lib//" +it.name} // 本地lib
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } // implementation 相关的引入解压并打包入新的jar中
    }
    manifest {
        attributes 'Main-Class' : 'com.bigdata.flink.WindowWordCount' // 主类类名
        attributes 'Class-Path' : runtimePath
    }
}
//第二种方法:测试成功
// 构建可执行 jar 包,运行依赖jar内容会直接打到 jar 里面
// 指明主类:
shadowJar {
    manifest {
        attributes(
                // 运行主类的全称类名
                'Main-Class': 'org.example.Main'
        )
    }
    zip64 true

    archiveClassifier.set('')
    // 打包后的jar包文件名
    archiveBaseName.set('java-example')
    archiveVersion.set('')

}

// 未指明主类
shadowJar {
    mergeServiceFiles()
    zip64 true

    archiveClassifier.set('')
    archiveBaseName.set('spark-plugin')//指定jar名字
    archiveVersion.set('')

    // 打包时排除指定的 jar 包
    dependencies {
        exclude(dependency('com.google.code.findbugs:jsr305'))
    }

    // 将 build.gradle 打入到 jar 中, 方便查看依赖包版本
    from("./") {
        include 'build.gradle'
    }
}
//注意提前安装相应的插件即写明以下代码:(也在build.gradle里面)
plugins {
    id 'com.github.johnrengelman.shadow' version '7.1.1'
}

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐