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

如何使用Gradle Kotlin DSL为FatJar指定入口点Main-Class?

Gradle Kotlin DSL是一种用Kotlin语言编写的Gradle构建脚本的替代方案。它提供了更加简洁、易读和易维护的语法,使得构建脚本的编写更加高效。

要为FatJar指定入口点Main-Class,可以按照以下步骤进行操作:

  1. 在项目的根目录下找到build.gradle.kts文件,该文件是使用Gradle Kotlin DSL编写的Gradle构建脚本。
  2. plugins部分添加application插件,该插件提供了用于创建可执行应用程序的功能。
代码语言:txt
复制
plugins {
    application
}
  1. application部分使用mainClassName属性指定入口点的Main-Class。
代码语言:txt
复制
application {
    mainClassName = "com.example.MainClass"
}

其中,com.example.MainClass应替换为实际的入口点类的完整类名。

  1. 在命令行中执行gradle build命令,Gradle将会构建并打包应用程序。

完成上述步骤后,Gradle将会为FatJar指定指定入口点Main-Class。你可以通过执行生成的Jar文件来运行应用程序。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法提供相关链接。但你可以通过访问腾讯云官方网站,查找与云计算相关的产品和服务,以满足你的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

耗时半天,我用 Kotlin 实现了 helang 何语言

虽然这项功能仍是实验性质的,但是这并不妨碍我们在 Kotlin 上正常使用,事实上,Kotlin 文档中的这篇文章就详细介绍了如何自定义你自己的 Kotlin Script。...创建 Kotlin Script 解析器 要想创建一个自己的 Kotlin Script,我们首先需要引入指定的依赖,在 Gradle Kotlin DSL 中引入: dependencies {...在 Gradle Kotlin DSL 中: val jar by tasks.getting(Jar::class) { manifest { attributes["Main-Class...这里需要注意的一是,如果你的 Kotlin 主类是 HeLangKotlinScriptImpl.kt,那么实际的主类名应当 HeLangKotlinScriptImplKt 接下来,在主类创建顶层函数...总结 本文通过使用 Kotlin Script 创建了一套新的 DSL,并允许自定义脚本运行。

65520

kotlin来开发一个cli工具 | 没用的技能+1

每个方法块都可以认为是一个运行的入口,通过这个来模拟出程序所需要的入参。从而一边完成了测试代码的编写,一边完成了调试入口。...Main 函数声明 我们要在build.gradle内的jar的task中,声明当前jar的main函数,作为命令行工具的入口。否则打出来的jar包就会报没有main函数的异常。...} } 其中from的含义就是将一个jar包把所有的依赖都打到一起,从而形成一个fatjar,而后续因为使用gradle提供的application插件,所以这行被我注释了。...生成最终产物 这里我们使用gradle提供的application plugin,这个插件可以将java jar包装成一个可执行文件的zip的压缩包。...如果万一哪怕我的py在强那么一,我也考虑用py来写了,哈哈哈哈哈。

1.2K30

SpringBoot 系列-FatJar 启动原理

从今天开始,我将持续更新磊叔的SpringBoot 系列文章,还请大家多多关注,多多转发,我们开发者圈多分享些干货,在此谢过各位了!...#run 方法开始 对于 java 程序来说,我们知道启动入口必须有 main 函数,这里看起来是符合条件的,但是有一就是,通过 java 指令执行一个带有 main 函数的类时,是不需要有 -jar...简单说就是,java -jar 命令引导的具体启动类必须配置在 MANIFEST.MF 资源的 Main-Class 属性中。...JarLaunch - FatJar 的启动器 在分析 JarLaunch 之前,这里插一下,org.springframework.boot.loader 下的这些类是如何被打包在 FatJar 里面的...这样在不需要 -jar 参数和 JarLaunch 引导的情况下,直接使用最原始的 java 指令理论上是不是也可以,因为有 main 方法。

1.6K20

如何Gradle 的 KTS 脚本添加扩展?

但受限于篇幅,我就不带着大家一步一步去看源码了,大家有兴趣可以在 Gradle 源码当中找到 org.gradle.kotlin.dsl 包,其中就是有关 Kotlin DSL 的支持的实现。 ?...Gradle Kotlin DSL 的源码路径 有了前面“你的 Gradle 脚本是怎么运行起来的?”...类的 execute 函数是调用入口DSL 脚本的内容则被编译成 Build_gradle 类的构造函数。...$$result = (Delete)var9; } } 截止目前,我想大家应该能够明白 Gradle Kotlin DSL 脚本是如何运行的了。 接下来我们就看看如何实现扩展的定义。 2....至此,我们实现了整个工程的构建脚本定义扩展。这一与我们在 buildSrc 当中定义依赖的版本常量的思路实际上也是一致的。

1.4K20

Gradle Kotlin DSL指南

本章详细介绍了主要的Kotlin DSL结构,以及如何使用它与Gradle API进行交互。 如果您有兴趣将现有的Gradle构建迁移到Kotlin DSL,也请参阅专用迁移部分。...要激活Kotlin DSL,只需使用.gradle.kts扩展您的构建脚本代替.gradle。这也适用于设置文件(例如settings.gradle.kts)和初始化脚本。...DSL包中的所有类型 避免使用内部Kotlin DSL api 在插件和构建脚本中使用内部Kotlin DSL api可能会在Gradle或插件发生变化时破坏构建。...Kotlin DSL API使用org.gradle.kotlin.dsl包或org.gradle.kotlin.dsl.plugins....此外,Kotlin DSL提供了几种选择Groovy语义的方法,我们接下来将讨论这一 静态键入扩展 Groovy和Kotlin语言都支持通过Groovy Extension模块和Kotlin扩展现有类

10K20

如何Gradle 的 KTS 脚本添加扩展?

但受限于篇幅,我就不带着大家一步一步去看源码了,大家有兴趣可以在 Gradle 源码当中找到 org.gradle.kotlin.dsl 包,其中就是有关 Kotlin DSL 的支持的实现。 ?...Gradle Kotlin DSL 的源码路径 有了前面“你的 Gradle 脚本是怎么运行起来的?”...类的 execute 函数是调用入口DSL 脚本的内容则被编译成 Build_gradle 类的构造函数。...$$result = (Delete)var9; } } 截止目前,我想大家应该能够明白 Gradle Kotlin DSL 脚本是如何运行的了。 接下来我们就看看如何实现扩展的定义。 2....至此,我们实现了整个工程的构建脚本定义扩展。这一与我们在 buildSrc 当中定义依赖的版本常量的思路实际上也是一致的。

2K30

Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法

: main.KillCheatFans 第一行是MAINIFEST的版本,第二行Class-Path就指定了外来jar包的位置,第三行指定我们要执行的MAIN java文件。...这里要注意几点: 1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示:Invalid header field; 2、假设我们的项目打包后为KillCheatFans.jar...,文件里打包package com.main; 那么这里就写com.main.KillCheatFans, 不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误; 4、写完Main-Class...* Seal content:要封装整个jar或者指定的包packet。 * Main class:这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。...这时可以使用一个打包的插件—Fat Jar。

1.8K20

干货 | 实现一个属于你的“语言”-携程Kotlin DSL开发与实践

这里主要分享在Kotlin中构建使用DSL。 二、应用 Kotlin DSL的应用广泛,包括gradle编写、编写js、html、SQL等。...在Gradle5.0中,官方提供可以选择在项目中生成Groovy或者kotlin DSL构建脚本,并进一步的优化代码自动完成、重构和其他 IDE 辅助功能,使用Kotlin DSL的 IDE 用户带来了极大的便利...在我们最近的海外支付SDK中,采用该种方式构建项目, 部分gradle代码如下: 可以看到使用kotlin编写和groovy编写区别不大,所以即使我们要将现有工程中的groovy脚本重写kotlin...Anko库实际上是用kotlin对相关类做了一层扩展包装,基于这一,它的局限性也体现在于会增加包大小,在使用之前可以根据项目评估一下是否适合引入Anko库。...2.4、创建一个自己的DSL Kotlin DSl的优势这么多,那么如何自定义一个DSL

1.6K10

SpringBoot - 探究Spring Boot应用是如何通过java -jar 启动的

使用-jar参数时,后面的参数是的jar 【spring-0.0.1-SNAPSHOT.jar】,该jar文件中包含的是class和资源文件; 在manifest文件中有Main-Class的定义;Main-Class...的源码中指定了整个应用的启动类; 简单来说: java -jar会去找jar中的manifest文件,去找到Main-Class对应的真正的启动类; 那看看去吧 ?...而在SpringBoot打包的fatJar中,则是使用后者JarFileArchive ---- JarFile JarFile:对jar包的封装,每个JarFileArchive都会对应一个JarFile...该方法主要是做了2个事情: (1)以FatJarfile作为入参,构造JarFileArchive对象。...通过spring-boot-plugin 生成了MANIFEST.MF , main-class 指定运行java -jar的主程序把依赖的jar文件 打包在fat jar. ?

1.4K30

Gradle 5.0 更新介绍

版权声明:本文博主原创文章,转载请注明出处。...DSL 1.0 Gradle官方很早就开始开发基于KotlinDSL了,在Gradle 5.0中Kotlin DSL正式版终于现身了,这意味着我们可以在生产项目中使用Kotlin DSL了。...和默认的Groovy DSL相比,由于Kotlin DSL是静态的,所以可以提供更多的代码补全、提示、语法高亮等支持。...如果想要使用Kotlin DSL,但是还是不太熟悉Kotlin DSL的语法也没有关系,Gradle官方早就写了一大堆示例项目,相信你看完以后肯定就了解如何使用了。连接在这里。 ?...任务超时 现在任务可以指定一个超时值,当执行时间超过的时候会停止。 解析依赖时的HTTP重试 现在当Gradle通过HTTP访问远程仓库的时候,如果失败,会在拉黑这个仓库之前重试。

98740

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

代码中 " com.android.tools.build " 是 Group 分组 " gradle " 是 插件名称 " 4.2.1 " 是 插件的版本号上述 3 个元素使用 " : " 英文冒号...插件分组 ; // 指定自定义 Gradle 插件的分组 group 'kim.hsl.plugin' 通过 Project#setVersion 方法 , 指定 Gradle 插件的版本号 // 指定自定义..., 在 自定义 Gradle 插件模块 的 build.gradle 构建脚本中 , 添加了 插件上传仓库的 配置 , 插件指定了 分组 , 版本号 , 名称 配置 ; // 指定自定义 Gradle...\META-INF\gradle-plugins " 目录 , 在该目录下创建 " kim.hsl.plugin.properties " 配置文件 , 内容 : implementation-class...4.2.1" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE

1.3K20

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

Gradle 团队与 Kotlin 团队密切合作, Gradle 开发了新的基于 Kotlin 脚本的构建配置语言,我们称之为 Gradle Script Kotlin,支持使用 Kotlin 编写构建和配置文件...我们使用 kotlin-gradle-plugin 编译 Kotlin 源代码和模块。使用Kotlin 版本通常定义 kotlinVersion 属性。...如果是针对 JDK 7 或 JDK 8,那么可以使用扩展版本的 Kotlin 标准库,其中包含新版 JDK 增加的额外的扩展函数。...12.1.7 编译器选项 要指定附加的编译选项,可以使用 Kotlin 编译任务compileKotlin的 kotlinOptions 属性。...下面我们就来简要介绍一下使用 Kotlin 脚本来编写 Gradle 的配置文件。 我们就以上一章中的 chapter11_kotlin_springboot 工程例。

2.7K20

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

并不是可执行的jar(没有指定Main-Class,也没有包含依赖的库,不是Fat-jar),而通过查看thrift的gradle脚本,可以看到脚本中已经提供了shadowJar这个task用于生成thrifty-compiler...编译thrifty thrifty是用kotlin语言写的,项目构建工具是用gradle,所以要编译thrifty,需要安装kotlin compiler和gradle....安装kotlin kotlin编译器可以去kotlin的官网(http://kotlinlang.org/)下载,当前最新版本1.3.11下载地址: https://github.com/JetBrains.../kotlin/releases/download/v1.3.11/kotlin-compiler-1.3.11.zip 将zip包解压到本地文件夹,然后设置KOTLIN_HOME环境变量指定该文件夹,...) 安装gradle gradle下载地址:https://gradle.org/releases/ 比如我使用的是4.5版本,下载地址:https://services.gradle.org/distributions

1.3K10

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

, 添加了 插件上传仓库的 配置 , 插件指定了 分组 , 版本号 , 名称 配置 ; // 指定自定义 Gradle 插件的分组 group 'kim.hsl.plugin' // 指定自定义...Gradle 插件的版本号 version '0.1' // 自定义 Gradle 插件的名称 , 默认为工程名 // 也可以在 publishing / publications 脚本块中 自己指定...二、Windows 本地 Maven 仓库地址 ---- 在 Windows 系统中 , 本地仓库的目录 " C:\Users\用户名.m2\repository " ; 在我的电脑上 , 实际的目录...C:/Users/octop/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.5.0/29dae2501ca094416d15af0e21470cb634780444.../kotlin-stdlib-1.5.0.jar (version 1.5) C:/Users/octop/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin

92510

Android—Gradle教程(九)完结篇

前言 到目前为止,Gradle基础以及Kotlin基础讲解完毕。因此,在本篇里,将会以Gradle的构建优化以及如何从Groovy迁移到KTS进行详解! 话不多说,直接开始!...2、Gradle Kotlin DSL 2.1 Kotlin DSL优缺点: Android Gradle插件4.0支持在Gradle构建配置中使用Kotlin脚本 (KTS),用于替代 Groovy(...Kotlin DSL:主要是指Android Gradle插件Kotlin DSL,有时也指底层Gradle Kotlin DSLKotlin编写的Gradle build文件使用.gradle.kts...已经成功的迁移到Kotlin DSL,爽歪歪! Demo下载:点我下载 最后再来个大大的总结! 3、Gradle专栏总结 本专栏需要掌握哪些知识?...当然光学会知识并不能发挥其最大的作用!需要结合实战来淬炼Kotlin的知识! 比如说:Tinker热更新、字节码插桩等等!都会用到Gradle相关知识!在以后的例子肯定还会再见的!

2.7K20

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

文章目录 一、在 Java or Kotlin Library 模块中定义插件 二、引入自定义 Gradle 插件模块 三、配置自定义 Gradle 插件上传选项 四、配置 Group 分组、插件名称、...插件模块 ---- 如果想要引入该插件 , 需要将该插件上传到 远程仓库 或者 本地仓库 中 , 才能通过 在 Android 工程的根目录下的 build.gradle 构建脚本 中使用该 自定义...远程仓库 或者 本地仓库 中 apply plugin: 'maven-publish' 然后 , 创建 publishing 扩展 , 在该扩展中 , 可以在其中的 publications 脚本块 中插件传入参数...代码中 " com.android.tools.build " 是 Group 分组 " gradle " 是 插件名称 " 4.2.1 " 是 插件的版本号 上述 3 个元素使用 " : " 英文冒号...插件分组 ; // 指定自定义 Gradle 插件的分组 group 'kim.hsl.plugin' 通过 Project#setVersion 方法 , 指定 Gradle 插件的版本号 // 指定自定义

1.5K20

还没自定义过 Gradle 插件的要学了

使用方引入插件后,其实就是调用了 Plugin#apply() 方法,我们可以把 apply() 方法理解插件的执行入口。...初始化插件目录结构 首先,我们在 Android Studio 新建一个 Java or Kotlin Library 模块,这里以非 buildSrc 模块的情况例: 然后,将模块 build.gradle...' // Kotlin id 'java-gradle-plugin' // Java Gradle Plugin } groovy 插件: 使用 Groovy 语言开发必备; org.jetbrains.kotlin.jvm...主要功能分为 3 : Set 容器: 支持添加多个 T 类型对象,并且不允许命名重复; 命名 DSL: 支持以 DSL 的方式配置 T 类型对象,这也要求 T 类型必须带有 String name...现在的趋势是:Gradle 脚本使用 Groovy 或 Kotlin 开发,而 Gradle 插件使用 Kotlin 开发。例如,我们可以发现 AGP 现在已经用 Kotlin 开发了。

1.8K20
领券