idea纯java工程使用gradle指定生成jar的Main-Class,idea生成jar

build.gradle核心代码如下:

复制代码
jar {
    manifest {
        attributes "Main-Class": "com.example.sample.Application"
    }
    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

完整代码如下:

复制代码
group 'com.example.sample'
version '2.1.6'

apply plugin: 'java'

tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}

sourceCompatibility = 1.8

repositories {
    maven { url "https://maven.aliyun.com/repository/central" }
    maven { url "https://maven.aliyun.com/repository/jcenter" }
    mavenCentral()
//    jcenter()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'

    compile 'org.swinglabs.swingx:swingx-core:1.6.5'
    compile "com.squareup.okhttp3:okhttp:3.14.6"
    compile 'com.alibaba:fastjson:1.2.70'
    compile 'org.quartz-scheduler:quartz:2.3.0'
    compile 'com.google.zxing:core:3.4.0'
    compile 'com.google.zxing:javase:3.4.0'
    compile 'com.google.code.gson:gson:2.8.6'
    compile 'mysql:mysql-connector-java:5.1.39'
    compile "org.apache.commons:commons-lang3:3.6"
    compile "commons-net:commons-net:3.6"
    compile "io.github.willena:sqlite-jdbc:3.33.0.1"
    compile "io.projectreactor.netty:reactor-netty:0.9.9.RELEASE"

    compile "org.apache.commons:commons-compress:1.9"

//  不引入xz依赖会在new SevenZFile的时候报错java.lang.NoClassDefFoundError: org/tukaani/xz/FilterOptions
    compile "org.tukaani:xz:1.9"

    //解压rar5,所需依赖开始
    compile "com.github.axet:java-unrar:1.7.0-8"
    compile "com.github.junrar:junrar:4.0.0"

    compile "net.sf.sevenzipjbinding:sevenzipjbinding:16.02-2.01"
    compile "net.sf.sevenzipjbinding:sevenzipjbinding-all-platforms:16.02-2.01"
    compile "org.apache.commons:commons-compress:1.9"
    compile "org.tukaani:xz:1.5"

    compile "commons-io:commons-io:2.8.0"
    compile "com.aliyun.openservices:aliyun-log:0.6.64"

    compile "org.apache.poi:poi:4.1.0"
    compile "org.apache.poi:poi-ooxml:4.1.0"
    compile "net.lingala.zip4j:zip4j:1.3.2"
}

jar {
    manifest {
        attributes "Main-Class": "com.example.sample.Application"
    }
    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

双击gradle条目下的tasks--build---assemble就可以生成jar;

生成目录在"项目根目录\build\libs"

相关推荐
泡茶喝茶写代码4 小时前
A股量化数据工程:从 REST 接口到策略信号(第 1 篇):指数列表与实时行情接入
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据接口
Sarvartha4 小时前
接口基础知识
java·开发语言
不才不才不不才5 小时前
Spring 源码系列(29): 20 道高频面试题源码级解析合集
java·后端·spring
索隆zoro5 小时前
Army 的可插拔架构:army-jdbc 与方言模块
java·后端
小蒜学长5 小时前
校园社团招新网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·校园社团招新网站
Dovis(誓平步青云)6 小时前
多个链接不等于多份证据,新闻核验看板怎样合并来源
java·服务器·前端·javascript·人工智能·pdf·电脑
旺仔Sec6 小时前
2026年江西省职业院校技能大赛(中职组)应用软件系统开发赛项竞赛样题
java·应用软件系统开发
Dovis(誓平步青云)6 小时前
几个方案来回选不定?做一个随时切换的候选推荐页
android·java·服务器·开发语言·javascript·数据库·智能化
一条破秋裤7 小时前
Linux 线程同步:读写锁
java·linux·jvm
蜗牛互联网7 小时前
从Barclays扩大Claude部署看受监管软件工程的责任重分配
java·大数据·人工智能·后端·软件工程