idea Gradle 编译可执行jar

本文介绍使用Gradle构建可执行的Java应用程序过程。通过配置build.gradle文件,实现依赖库的打包与管理,并生成带有MANIFEST.MF文件的可执行jar。文章详细展示了配置示例与执行命令。

之前项目都是ant编译的 感觉ant比较老而且难懂 就选择gradle来学习下。先参考网上资料 安装好gradle的环境 。idea 可以直接选择创建一个简单的gradle项目 自动生成 build.gradle 文件。
项目结构
上面是项目的一个简单的结构,目标是把引用的jar打包到lib文件夹里 。生成可执行的jar

apply plugin: 'java'
apply plugin: 'application'


group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    compile group:'commons-collections',name:'commons-collections',version:'3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}


mainClassName = 'com.chm.Test'


jar {
    String someString = ''
    configurations.runtime.each {someString = someString + " lib/"+it.name
     print("======"+it.name)
    }
    manifest {
        attributes 'Main-Class': 'com.chm.Test'
        attributes 'Class-Path': someString
    }
}

task clearPj(type:Delete){
    delete 'build','target'
}
task copyJar(type:Copy){
    from configurations.runtime
    into ('build/libs/lib')
    print("======copyJar")
}
task release(type: Copy,dependsOn: [build,copyJar]) {
    print("======release")
}

apply plugin: ‘application’ 说明你构建的是可执行的jar 那么mainClassName 参数就是必须的

jar {
    String someString = ''
    configurations.runtime.each {someString = someString + " lib/"+it.name
     print("======"+it.name)
    }
    manifest {
        attributes 'Main-Class': 'com.chm.Test'
        attributes 'Class-Path': someString
    }
}

这里主要是注入MANIFEST.MF 文件里的参数

上面是 构建脚本 在脚本所在的目录 执行命令 gradle release 就可以生成对应的jar 文件
然后在build\libs目录下面 执行 java -jar demo-0.0.1-SNAPSHOT.jar

### 如何在 IntelliJ IDEA 中通过 Gradle 构建 JAR 包 要在 IntelliJ IDEA 中使用 Gradle 打包生成一个可执行JAR 文件,可以按照以下方法实现: #### 配置 `build.gradle` 文件 编辑项目的根目录下的 `build.gradle` 文件,确保其中包含了用于构建 JAR 的配置。以下是典型的配置示例[^1]: ```groovy plugins { id 'java' } group 'com.example' version '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { implementation 'org.apache.commons:commons-lang3:3.9' // 示例依赖项 testImplementation 'junit:junit:4.12' } // 定义 JAR 包的相关属性 jar { manifest { attributes( 'Main-Class': 'com.example.MainClass', // 替换为实际的主类路径 'Class-Path': configurations.runtime.files.collect { it.getName() }.join(' ') ) } } ``` 上述代码片段定义了一个名为 `Main-Class` 的清单条目,并指定了程序入口点所在的类名。 --- #### 使用 Gradle Wrapper 进行构建 Gradle 提供了一种跨平台的方式——Gradle Wrapper 来运行构建脚本而无需手动安装 Gradle。可以通过命令行或者 IDE 调用它来生成 JAR 文件。 ##### 命令行方式 打开终端窗口,导航到项目根目录,输入以下命令以生成 JAR 文件: ```bash ./gradlew clean build ``` 这会清理旧版本并重新编译整个项目,最终生成的目标文件位于 `my-gradle-project/build/libs/` 下面[^3]。 如果一切正常,则应该看到类似于这样的输出结果: ``` BUILD SUCCESSFUL in 5s ... ``` 此时可以在指定位置找到 `.jar` 文件。 ##### 利用 IntelliJ IDEA GUI 操作 当项目成功导入至 IntelliJ IDEA 后,在右侧面板可以看到 **Gradle** 工具窗口。展开当前模块节点,定位到 Tasks -> Build 分组内的 `assemble` 或者更具体的 task 名称为 `jar` 。双击该选项即可触发对应的构建流程[^3]。 注意:确认已设置正确的 JDK 和其他必要的环境变量;另外还需保证源码无误才能顺利完成打包过程。 --- #### 测试生成的 JAR 文件 为了验证所创建出来的 JAR 是否能够独立工作,请尝试从外部加载此档案。假设已经设置了合适的 MANIFEST.MF 并且存在有效的启动函数 public static void main(String[] args),则可以直接利用 java -jar 命令测试应用实例化情况: ```bash java -jar my-gradle-project/build/libs/my-application-name.jar ``` 如果有任何异常抛出,请仔细检查之前的每一步骤以及日志提示信息。 --- ### 注意事项 对于某些复杂场景(如涉及 JavaFX),可能还需要额外处理资源嵌入等问题[^4]。因此建议阅读官方文档获取更多细节说明[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值