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

如何使用Kotlin DSL和插件在Gradle中创建胖Jar

在Gradle中使用Kotlin DSL和插件创建胖Jar的步骤如下:

  1. 首先,确保你的项目中已经使用了Kotlin插件和Gradle插件。在项目的build.gradle文件中添加以下代码:
代码语言:txt
复制
plugins {
    id("org.jetbrains.kotlin.jvm") version "x.x.x" // Kotlin插件
    id("java-library") // Gradle插件
}
  1. 创建一个新的Kotlin文件,例如build.gradle.kts,并将其放置在项目的根目录下。
  2. 在build.gradle.kts文件中,导入所需的类和方法:
代码语言:txt
复制
import org.gradle.api.tasks.bundling.Jar
import org.gradle.kotlin.dsl.*
  1. 定义一个自定义的任务来创建胖Jar。在build.gradle.kts文件中添加以下代码:
代码语言:txt
复制
tasks {
    val fatJar by creating(Jar::class) {
        manifest {
            attributes["Main-Class"] = "your.main.class" // 替换为你的主类
        }
        from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
        with(tasks["jar"] as Jar)
    }
    "build" {
        dependsOn(fatJar)
    }
}
  1. 替换代码中的"your.main.class"为你的主类的全限定名。
  2. 运行Gradle命令来构建胖Jar文件:
代码语言:txt
复制
./gradlew build
  1. 构建完成后,胖Jar文件将生成在build/libs目录下。

胖Jar是一个包含所有依赖的可执行Jar文件。它的优势在于可以将所有依赖打包到一个Jar文件中,方便部署和分发。它适用于需要将应用程序及其所有依赖打包成一个独立的可执行文件的场景。

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

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云函数(SCF):https://cloud.tencent.com/product/scf
  • 云原生应用引擎(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/mpns
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Tencent Cloud Metaverse):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Gradle创建简单的项目

创建一个简单的构建 新建一个目录 使用 init 命令创建构建项目 Gradle 现在支持两种–Kotlin DSL Groovy DSL .默认是 基于Groovy的,如果要使用 Kotlin 可以...使用 --dsl kotlin gradle init --dsl kotlin ?...构建的Gradle设置脚本 创建任务 Gradle提供了通过Groovy或基于kotlinDSL创建和配置任务的api。...使用插件 Gradle 提供了大量的插件 Gradle 插件站 可以查到 今天使用 一个 base 插件 结合它的核心类型 Zip 任务,实现打包压缩包的任务。...分析构建过程 Gradle 提供了一个基于 web的构建视图——构建扫描 执行时 使用 –scan 选项或者明确使用构建扫描插件都可以免费的 https://scans.gradle.com 创建一个扫描视图分析

1.2K20

【Android Gradle 插件】自定义 Gradle 插件模块 ⑤ ( 完整总结 ) ★★★

文章目录 一、创建自定义插件类型模块 ( Java or Kotlin Library ) 二、手动导入相关依赖 ( Java | Groovy | Gradle ) 三、 Java or Kotlin...选项 , " Create New Module " 对话框 , 选择 创建 " Java or Kotlin Library " 类型的依赖库 ; 二、手动导入相关依赖 ( Java |...fileTree(dir: 'libs', includes: ['*.jar']) } 三、 Java or Kotlin Library 模块定义插件 ---- 插件模块的 src/main... apply plugin: 'maven-publish' 然后 , 创建 publishing 扩展 , 该扩展 , 可以在其中的 publications 脚本块 插件传入参数 ; 注意..." 是 Group 分组 " gradle " 是 插件名称 " 4.2.1 " 是 插件的版本号上述 3 个元素使用 " : " 英文冒号 隔开 ; 因此 , 自定义 Gradle 插件模块

1.3K20

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑧ ( 设置 Gradle 插件模块 | 将 Gradle 插件上传到自建 Maven 仓库 )

/han1202012/Android_UI 一、设置 Gradle 插件模块 ---- 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑦ (...登录 Maven 私服 | Maven 私服初始化设置 | 创建 Maven 仓库 ) 博客 , Maven 私服创建了 Maven 仓库 " MyRepository “ , 地址为 ” http...Gradle 插件的版本号 version '0.1' // 自定义 Gradle 插件的名称 , 默认为工程名 // 也可以 publishing / publications 脚本块 自己指定... Gradle 面板执行该 " publishPluginPublicationToMyRepositoryRepository " 任务 , 就会自动将插件内容上传到创建的 maven...仓库 ; 上传完成后 , Maven 私服的 Web 界面 , 点击 MyRepository 仓库 , 进入 HTML View 界面 , 此时已经可以看到上传的 jar包 , 文档 ,

95730

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ④ ( 默认生成的 pom 文件 | Maven 的 pom 配置 | 自定义 pom 文件节点 )

/han1202012/Android_UI 一、默认生成的 pom 文件 ---- 自定义 Gradle 插件 编译后生成的 pom 文件 , 存放在 " build/publications...Gradle 插件的版本号 version '0.1' // 自定义 Gradle 插件的名称 , 默认为工程名 // 也可以 publishing / publications 脚本块 自己指定...// 用于将 插件上传到 远程仓库 或者 本地仓库 apply plugin: 'maven-publish' // 自定义源码打包任务 // 自定义 Jar 类型的 Gradle 任务 /.../ 将源码打包到 jar task sources2Jar(type: Jar) { // 指明要打的 jar 包名称 // 最终打包的名称是 plugin-0.1-sources.jar...} // 配置 工程工件 对应的 jar 包产出 配置 // 这里将 文档打包 源码打包 后的 jar 包作为输出 artifacts { archives sources2Jar

1.4K10

【Android Gradle 插件】自定义 Gradle 插件模块 ② ( 模块定义插件 | 引入自定义 Gradle 插件模块 | 配置 Gradle 插件上传选项 | 配置分组名称版本号 )

文章目录 一、 Java or Kotlin Library 模块定义插件 二、引入自定义 Gradle 插件模块 三、配置自定义 Gradle 插件上传选项 四、配置 Group 分组、插件名称、.../han1202012/Android_UI 一、 Java or Kotlin Library 模块定义插件 ---- 插件模块的 src/main 目录 下创建 groovy 目录 ,...插件模块 ---- 如果想要引入该插件 , 需要将该插件上传到 远程仓库 或者 本地仓库 , 才能通过 Android 工程的根目录下的 build.gradle 构建脚本 中使用该 自定义...: 'maven-publish' 然后 , 创建 publishing 扩展 , 该扩展 , 可以在其中的 publications 脚本块 插件传入参数 ; 注意 : publications..." 是 Group 分组 " gradle " 是 插件名称 " 4.2.1 " 是 插件的版本号 上述 3 个元素使用 " : " 英文冒号 隔开 ; 因此 , 自定义 Gradle 插件模块

1.5K20

【Android Gradle 插件】自定义 Gradle 插件模块 ③ ( Gradle 插件模块发布配置 | Windows 本地 Maven 仓库地址 | 将插件上传到本地 Maven 仓库 )

/han1202012/Android_UI 一、自定义 Gradle 插件发布配置 ---- 在上一篇博客 【Android Gradle 插件】自定义 Gradle 插件模块 ② ( 模块定义插件...| 引入自定义 Gradle 插件模块 | 配置 Gradle 插件上传选项 | 配置分组名称版本号 ) , 定义完插件后 , 自定义 Gradle 插件模块 的 build.gradle 构建脚本...Gradle 插件的版本号 version '0.1' // 自定义 Gradle 插件的名称 , 默认为工程名 // 也可以 publishing / publications 脚本块 自己指定...} } } 首次编译执行 , 可以 自定义 Gradle 插件的 Module 模块 下 , 看到 publishing 分组的 Gradle 任务 , 如下图红色矩形框的内容...插件 上传到本地 Maven 仓库 ; 二、Windows 本地 Maven 仓库地址 ---- Windows 系统 , 本地仓库的目录为 " C:\Users\用户名.m2\repository

92310

【Android Gradle 插件】自定义 Gradle 插件模块 ① ( Module 模块自定义 Gradle 插件 | 创建自定义插件类型模块 | 手动导入相关依赖 )

文章目录 一、将自定义 Gradle 插件上传到远程仓库 二、创建自定义插件类型模块 ( Java or Kotlin Library ) 三、手动导入相关依赖 ( Java | Groovy | Gradle...⑦ ( 自定义 Gradle 插件导入方式 | buildSrc 插件导入 | 构建脚本自定义插件 | 独立文件 ) , 总结了 Android Studio 工程 自定义 Gradle 插件...' } 方式 , Module 模块 , 导入并使用 Android Gradle 插件 ; 这种方式是将 自定义 Gradle 插件jar 包 上传到了 jcenter / google.../ mavenCentral 远程仓库 ; 二、创建自定义插件类型模块 ( Java or Kotlin Library ) ---- 选择 " 菜单栏 / New / New Module…..." 选项 , " Create New Module " 对话框 , 选择 创建 " Java or Kotlin Library " 类型的依赖库 ; 三、手动导入相关依赖 ( Java |

2.1K30

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

② ( java groovy 插件自带文档任务 | 自定义文档打包任务 | 生成文档包 ) , 分别使用 自定义 Jar 类型 Gradle 任务 将 插件源码 插件文档 打包到了 jar...包 ; artifacts 配置 , 是用于配置 工程工件 对应的 jar 包产出 配置 ; // 配置 工程工件 对应的 jar 包产出 配置 // 这里将 文档打包 源码打包 后的 jar...Gradle 插件的版本号 version '0.1' // 自定义 Gradle 插件的名称 , 默认为工程名 // 也可以 publishing / publications 脚本块 自己指定...// 用于将 插件上传到 远程仓库 或者 本地仓库 apply plugin: 'maven-publish' // 自定义源码打包任务 // 自定义 Jar 类型的 Gradle 任务 /...} } } 三、将 Gradle 插件 jar 包、源码、文档上传到本地Maven 仓库 ---- 执行 Gradle 面板的 publishingPluginPublicationToMavenLocal

1.3K20

《Kotin 极简教程》第12章 使用 Kotlin 集成Gradle 开发 第12章 使用 Kotlin 集成Gradle 开发《Kotlin极简教程》正式上架:

有任何问题,欢迎随时与我交流~ ---- 由于 Kotlin 具有丰富的功能,如一等函数扩展方法等,因此它可以保留改进 Gradle 构建脚本的最佳部分——包括简明的声明式语法以及轻松制作 DSL...同时,还支持 IDE 实现自动完成编译检查等功能。有了Gradle Script Kotlin,我们可以使用 Kotlin 来写配置文件,就跟写普通代码一样。...例如我们项目根路径下面的settings.gradle如下配置: include ':app' 每一个子项目都拥有自己的build.gradle文件来声明自己如何构建。...这里面的 Gradle DSL 的相关函数与类都在 Gradle 软件包的 lib 目录下: lib/gradle-script-kotlin-(版本号).jar 。...在下一章,我们将学习使用 Kotlin Anko 来进行Android开发的相关内容。

2.7K20

Kotlin 使用DSL构建语法结构 看这一篇就够了~

前言 DSL并不是单独为Kotlin语言提供的,可能你并知道DSL是什么,但是我敢说,只要你是Android开发者,你就一定使用过并且一直使用DSL,那么到底什么是DSL?...DSL的基础用法 接下来,我们来看,Kotlin如何使用DSL构建自己的语法呢,要想装13 我们当然要来实现上面一样的语法结构,那我们就来造一个吧~ 首先我们新建一个类Dependency,名字是可以随便起的... is Huanglinqing ,i am 25 years old Process finished with exit code 0 那么,我们如何使用DSL的方式去创建一个User对象呢,首先我们需要提供一个高阶函数...Anko插件 最后我们来简单的介绍下DSLKotlin的一个框架Anko,Anko用Kotlin DSL 写的Android插件,Anko主要的作用是替代以前用XML的方式来生成UI布局。...关于Anko插件如何使用,就不讲解了,感兴趣的可直接到Github上了解:https://github.com/Kotlin/anko 写在最后 DSL使用场景远远不止这些,其实前提就是使用好高阶函数

1.5K20

Gradle Kotlin DSL指南

Kotlin DSL脚本读到的所有东西都是由Gradle编译执行的Kotlin代码。你构建脚本中使用的许多对象、函数属性都来自于Gradle API应用插件的API。...DSL的所有类型 避免使用内部Kotlin DSL api 插件构建脚本中使用内部Kotlin DSL api可能会在Gradle插件发生变化时破坏构建。...使用Gradle插件一章解释了如何在根项目构建脚本声明一个版本的插件,然后将它们应用到相应子项目的构建脚本。下面是一个使用三个子项目三个插件的方法示例。...随着语言的成熟,这将不再是一个问题 Kotlin的编译器参数 这些是一个应用了KotlinDSL插件的项目中编译Kotlin DSL脚本Kotlin源代码脚本时使用Kotlin编译器参数:...互用性 构建逻辑混合语言时,可能需要跨越语言边界。一个极端的例子是使用Java、GroovyKotlin实现的任务插件的构建,同时也使用Kotlin DSLGroovy DSL构建脚本。

9.9K20

Gradle入门指南

为什么使用Gradle: 简单易学:Gradle使用简单明了的DSL语言,易于学习使用。 高度灵活:Gradle可以根据项目需要定制各种不同的构建流程。...如何使用: 安装Gradle 下载并安装Gradle:https://gradle.org/install/ 创建Gradle项目 命令行输入以下命令,创建一个新的Gradle项目: gradle...任务 命令行输入以下命令,执行Gradle任务: gradle [task name] 例如,以下命令将编译Java源代码并生成可执行的JAR文件: gradle build 如何集成: Gradle...以IntelliJ IDEA为例,步骤如下: IntelliJ IDEA打开Gradle项目。 左侧菜单栏中点击“Gradle”选项卡。 Gradle面板中选择需要执行的任务。...Gradle VS Maven 首先,Maven使用XML来配置项目,而Gradle使用Groovy或KotlinDSL(领域特定语言)来定义构建脚本。

1K20

解密!第一个开源架构工作台的构建过程

在这个早期的 demo 版本里,你可以尝试一下,我们 ArchGuard 构建的架构即代码的理念,以及如何围绕于一个系统构建出一个工作台?...DSL 语法:Antlr vs Kotlin DSL ArchGuard ,主要使用的是 Antlr 框架来进行不同语言的语法解析(即 Chapi)。...因此,使用 Antlr 来设计一个新的 DSL 及其编译器前端,对于我们而言,并不存在技术上的挑战。甚至于,以往的经历,我们也有大型 IDEA 插件架构设计与开发的经历。...即,它可以同时满足两类人的需求,使用 Markdown 使用 Markdown,他们能都从编辑器上获得自己的鼠标(markdown)键盘(富文本)。...详细见:Spring Gradle 插件文档:《Spring Boot Gradle Plugin Reference Guide》,只是对应的解释说明:必须从 fat jars 解压才能运行的库列表

1.2K10

Gradle 5.0 更新介绍

Gradle 5.0Kotlin DSL正式版终于现身了,这意味着我们可以在生产项目中使用Kotlin DSL了。...如果想要使用Kotlin DSL,但是还是不太熟悉Kotlin DSL的语法也没有关系,Gradle官方早就写了一大堆示例项目,相信你看完以后肯定就了解如何使用了。连接在这里。 ?...Gradle构建初始化功能 gradle init任务现在增加了一些很实用的功能: 交互模式,初始化的时候可以交互模式输入信息; Kotlin类库程序,现在可以初始化的时候生成Kotlin类库程序类型...配置项目代码包名,现在init任务提供了参数来设置项目源代码的包名; 创建资源文件夹,现在init任务还会创建空的resource文件夹; 创建.gitignore文件。...官方文档有一个很长的列表,这里只简单列出一部分: 之前4.0提升的特性 并行任务执行 持续构建 组合构建 java-gradle-plugin插件 distribution插件 jacoco插件 更新日志还有很多地方我没有介绍

98540

Android 重构 | 持续优化统一管理 Gradle

buildSrc 实践 描述下操作步骤: 项目根目录下创建 buildSrc 目录,随后新建 build.gradle.kts 文件; 创建 src 目录,以及对应管理版本文件; 替换直接使用原有依赖...build.gradle.kts 内容如下: // 导入 Kotlin 插件 import org.gradle.kotlin.dsl....`kotlin-dsl` plugins { `kotlin-dsl` } repositories { jcenter() } /** * 禁用测试报告(Gradle 默认会自动创建测试报告...:${Versions.kotlinxCoroutines}" // ... } 举个两个栗子,如何使用: 根目录下 build 如何使用: 直接通过 Dependencies 文件定义的分组名去获取对应的属性即可...Step 1:项目根目录下创建 buildSrc 目录 Step 2:新建 version.gradle 依赖/插件管理 大佬日志以及写的很明确了,这里我单独说下我期间遇到的坑,或者是重点吧,让看到此文的小伙伴更快的上手

1.8K31

从精准化测试看ASMAndroid的强势插入-Gradle插件

文件夹,是一个系统保留目录,可以直接运行插件代码而不用引用插件包 独立项目:类似module,单独编译成jar使用 创建 Gradle自带了创建模板项目的方法——gradle init,通过这个指令,...buildSrc,不用每次publish到App,可以直接参与编译,调试比较方便,但是等插件稳定后,通过独立的插件项目,可以让插件的集成管理更加方便。...一般来说,我们会使用本地Maven库来调试插件,借助Gradle的maven-publish插件,我们可以方便的发布插件到本地Maven库。...使用 使用插件的项目根目录Gradle文件,指定访问mavenLocal,同时,使用groupId、artifactIdversion组成对插件的引用,如下所示。...Gradle使用Gradle需要对原有脚本做一些改造,首先,要将build.gradle脚本改为buld.gradle.kts,然后将Kotlin代码放到src/man/kotlin目录下,最后,脚本的代码也要做相应的更新

1K40

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券