首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Gradle 6.3将本地jar包含到fat jar中?

Gradle是一种基于Groovy语言的构建工具,用于自动化构建、测试和部署Java项目。它支持将本地jar包含到fat jar中,以便在构建过程中将所有依赖项打包到一个可执行的jar文件中。

要将本地jar包含到fat jar中,可以按照以下步骤进行操作:

  1. 在项目的根目录下创建一个lib文件夹,用于存放本地的jar文件。
  2. 将需要包含的本地jar文件复制到lib文件夹中。
  3. 在项目的build.gradle文件中添加以下代码:
代码语言:txt
复制
plugins {
    id 'java'
    id 'application'
}

repositories {
    flatDir {
        dirs 'lib'
    }
}

dependencies {
    implementation fileTree(dir: 'lib', include: ['*.jar'])
}

jar {
    manifest {
        attributes 'Main-Class': 'com.example.MainClass'
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

上述代码中,repositories部分配置了lib文件夹作为本地仓库,dependencies部分使用了fileTree函数来引入lib文件夹下的所有jar文件。

jar任务中的from部分使用了configurations.runtimeClasspath来获取所有运行时依赖项,并将其添加到生成的jar文件中。

  1. 在命令行中执行以下命令来构建fat jar文件:
代码语言:txt
复制
gradle clean build

执行完毕后,生成的fat jar文件将包含所有本地jar文件及其依赖项。

这种方法适用于将本地的第三方库或自己编写的库打包到一个可执行的jar文件中,方便在其他环境中部署和运行。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云数据库 MySQL 版(CMYSQL):https://cloud.tencent.com/product/cmysql
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mobile
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Tencent Real-Time Rendering Engine):https://cloud.tencent.com/product/tencent-rre
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Gradlejar如何上传到maven本地

需求 在实际开发过程,我们可能把一些自己实现的公共代码打包成一个jar提供给各个项目使用,有几种做法: 上传到Maven中央库 上传到Maven私服(Nexus) 上传到Maven本地仓库 当公司没有安装私服...,而这个公共的jar只需要自己来用,不需要分享给别人的去用的话,最简单的方式就是打包上传到自己的本地Maven仓库,然后其它项目去引入依赖即可。...Maven比较简单,直接build pom文件直接打成的jar生成到了本地仓库,但是Grande需要进行简单的Task定义 定义资源库 默认情况下,Gradle没有定义任何资源库。...您需要定义至少一个,然后才能使用外部依赖。在build.gradle中进行定义。...项目的引入依赖 jar生成之后,那就是需要在其它项目里引入次依赖了,跟引入普通依赖一样 repositories { mavenLocal() // 必须引入本地仓库,不然找不到jar

5.9K71
  • 使用groovy脚本使gradle灵活加载本地jar的两种方式

    本人在使用Jenkins做测试项目的可持续集成过程,构建工具用的gradle,但由于一些jar是并私有仓库给用,暂时没有搭建计划。...这就导致了我构建项目的时候需要的jar的地址往往是不一样的,而且服务器和本地的版本可能也有所差别,经常其他同学提交代码时候把build.gradle文件一并提交了,倒是仓库文件比较乱。...为了解决这个问题,看了一些资料再研究了一点点gradle使用后总结了两种方法。...比较笨,但是比较容易理解,由于框架的jar和一些固定的jar版本不怎么发生变化,维护成本较低。...这个比较简单,而且能够做到jar版本更新的时候自动同步(服务端的jar有Jenkins生成)。暂时想到的比较好的办法。

    1.6K10

    Mac配置gradle环境及使用android studio打包jar与arr的方法

    前言 在Mac中用android studio 导出jar最重要的是需要配置gradle ,它的导出也是通过gradle命令进行的。...所以,如果想成功打包,要先配置好gradle环境,这样你才可以在android studio的terminal中直接使用gradle命令了。下面话不多说了,来一起看看详细的介绍吧。...1.在你需要打包的module的builde.gradle文件 apply plugin: 'com.android.application' 的 application 改成 library...(type: Delete) { delete 'libs/sdk.jar' //sdk是你自己jar的名字,随便命名 } task makeJar(type: org.gradle.api.tasks.bundling.Jar...('build/intermediates/classes/debug/com/****/*****') //打包到jar后的目录结构,这里建议直接用名 into('com/*****/***

    2.7K20

    【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ③ ( 配置上传工件 | Gradle 插件 jar 、源码、文档上传到本地Maven 仓库 )

    文章目录 一、配置 artifacts 工程工件 二、配置上传工件 三、 Gradle 插件 jar 、源码、文档上传到本地Maven 仓库 Android Plugin DSL Reference...② ( java 和 groovy 插件自带文档任务 | 自定义文档打包任务 | 生成文档 ) , 分别使用 自定义 Jar 类型 Gradle 任务 插件源码 和 插件文档 打包到了 jar...: 'maven-publish' // 自定义源码打包任务 // 自定义 Jar 类型的 Gradle 任务 // 源码打包到 jar task sources2Jar(type: Jar)...} // 自定义文档打包任务 // 自定义 Jar 类型的 Gradle 任务 // 文档打包到 jar task document2Jar(type: Jar, dependsOn: [javadoc...} } } 三、 Gradle 插件 jar 、源码、文档上传到本地Maven 仓库 ---- 执行 Gradle 面板的 publishingPluginPublicationToMavenLocal

    1.4K20

    Android多模块构建合并aar解决方案

    前言 前段时间,我在实现gradle多模块构建遇到一个问题,以前我们基本上是以jar形式让开发者集成到工程中使用,但自从Android Studio中有了多module的概念,而我们的SDK也是分了多个模块进行构建的...它跟jar有什么区别?它该怎么样使用?相信大家一定会有这些疑问。...jar文件的使用方式我们应该比较熟悉了,将它复制到工程的libs目录下,然后在gradle添加以下脚本: dependencies { compile fileTree(include: ['...步骤1: gradle文件’fat-aar.gradle’到你的项目目录,然后apply: apply from: 'fat-aar.gradle' 步骤2:定义嵌入的依赖关系 你需要修改你以前依赖项...使用例子如下: apply from: 'fat-aar.gradle' dependencies { compile fileTree(dir: 'libs', include: ['*.jar

    4.6K30

    解决thrifty-compiler.jar运行报错不能编译IDL生成java class代码问题

    ,不是Fat-jar),而通过查看thrift的gradle脚本,可以看到脚本已经提供了shadowJar这个task用于生成thrifty-compiler的Faj-Jar,所以要想得到可执行的thrifty-compiler.jar...解压到本地文件夹,然后设置KOTLIN_HOME环境变量指定该文件夹,然后还要将bin子文件添加到PATH搜索路径(Windows平台)。...gradle下载地址:https://gradle.org/releases/ 比如我使用的是4.5版本,下载地址:https://services.gradle.org/distributions/...gradle-4.5-bin.zip (https://services.gradle.org/distributions/ 可以显示所有发布版本的版本压缩文件名列表) 跟安装kotlin差不多,解压后...Java 8 required 如果在执行项目编译时报错,说明你的环境变量设置的JAVA_HOME指向的Java 7,而kotlin编译器要求Java 8,所以你需要修改JAVA_HOME环境变量,

    1.3K10

    从Android到React Native开发(四、打包流程解析和发布为Maven库)

    本地多aar文件的合并实现。 进一步的Gradle脚本理解。 如何发布一个React Native的Maven库。 OK,Let't do it (-_^)。 ?  ...bundle/目录下的assetPathUtils.js文件,getAndroidResourceIdentifier方法的源码可知,js文件引用本地的静态资源文件,如果存在多级目录,是会被Encode...当然,如何合并,合并的时机这些都是需要处理的点。而这时候, android-fat-aar 脚本,刚好满足的我们的需求。...compile引用,但是这个过程,我们通过embedded统计到哪些需要合并发布。...四、最后  如何,最终实现过程其实并不复杂,总结起来: 创建一个android.library 添加本地dependencies依赖 apply react.gradlefat-aar.gradle

    2.3K20

    Fat JAR

    要创建一个Fat JAR,你可以使用构建工具如Maven或Gradle,它们都提供了打包所有依赖项到一个JAR的插件。...以下是一个使用Maven的简单Fat JAR入门案例: 创建一个新的Maven项目你可以手动创建一个新的Maven项目,或者使用IDE来生成,项目结构通常如下所示: my-fatjar-app ├──...你需要添加 maven-assembly-plugin 插件配置,它会指导Maven如何打包你的应用程序和它的依赖项到一个Fat JAR。...运行你的Fat JAR你可以使用以下命令运行生成的Fat JAR: java -jar target/my-fatjar-app-1.0-SNAPSHOT-jar-with-dependencies.jar...以上就是一个简单的Fat JAR入门案例。如果你使用的是Gradle,步骤将有所不同,但基本概念是相同的:你需要配置你的构建脚本以包含所有依赖,并创建一个可执行的JAR文件。

    36410

    Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

    ---- 配置属性的调整 这个版本,一些配置属性已被重命名或弃用(这会导致不向下兼容,需要特别引起注意),需要你做出调整。 那么如何知道我现在用的哪些属性存在不兼容情况呢???...特点说明:jar外,jar外,jar外,放在内部(比如resource目录下是没有此特针的),下面有示例证明 简单的说,如果你有MySql的配置和Redis配置的话,你就可以把他们分开来放置,...6.3+。...---- Docker支持 在Maven和Gradle插件添加了对构建包含分层内容的jar文件的支持。分层根据jar内容的更改频率来分隔它们。这种分离允许更有效地构建Docker映像。...这可以通过描述如何jar分成层以及这些层的顺序的配置来完成。 ---- Fat Jar支持优化 用Maven和Gradle构建的Fat jar现在包括一个索引文件。

    1.4K20

    Gradle For Android(3)--管理依赖关系

    本地的Maven仓库是一个所有使用过的依赖的本地缓存,我们也可以添加自己的依赖。...'aars' } } 本地依赖 有时候,我们仍然会手动下载Jar或者So等方式进行依赖,接下来会介绍如何配置这些文件依赖,Native Libraries以及如何在Project...include library工程 文件依赖 添加Jar文件,我们可以使用Gradle提供的file和fileTree方法来添加单个或者整个文件目录作为依赖,或者通过include来过滤其他的文件:...,比如说蓝牙SDK等,为了能够编译这些代码,我们需要添加SDK到classpath,但是不需要把SDK包含到APK,因为这些SDK已经在设备存在了,这也就是依赖的Configuration的作用了...provided配置项则与之相反,它的依赖项不会被添加到,而这两种方式只能够对Jar的依赖生效,如果使用Library Project的话,会报错。

    1.5K30

    gradle构建java项目

    简介 之前的文章我们讲到了gradle的基本使用使用gradle的最终目的就是为了构建java项目。今天本文将会详细的讲解如何gradle构建java项目。...不管是构建应用程序还是java库,我们都可以很方便的使用gradle init来创新一个新的gradle项目: $ gradle init Select type of project to generate...,所以这里多了一个api的使用,api表示是第三方应用程序也需要依赖这个,而implementation表示的是该只是在这个项目内部被依赖。...} } 或者Ivy: repositories { ivy { url "http://repo.mycompany.com/repo" } } 甚至可以使用本地的...我们需要将这些配置文件拷贝到特定的目标目录。 默认情况下,gradle会拷贝src/[sourceSet]/resources 的文件到目标文件夹

    1.3K31
    领券