Java项目+打包+部署

本文详细介绍了Java项目中Class包和Jar包的打包、部署及运行过程,包括处理资源文件、依赖jar包、gradle打包Rpm包,以及Spring Boot jar包的特殊性。针对不同类型的jar包,如自运行包、胖包和廋包,提供了具体的操作步骤和注意事项,尤其强调了资源文件的处理和依赖管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.打包、部署、运行Class包

1.打包需要处理的问题

(1)资源文件不在默认的src\main\resources下如何处理

(2)依赖jar包处如何引入

   -cp/-classpath后的参数值在windows以;分割,在linux以:分割

(3)main-class对同项目的其他的class依赖处理

   -cp/-classpath参数值加入.

2.用gradle将class文件打包为Rpm包

(1)gradle.build配置文件关键部分

/**classes打包的五个task:copyConfig、copyScripts、copyLib、copyClasses、pkgAll,默认打包到$buildDir的rmp目录下**/
//复制资源文件
task copyConfig(type: Copy){
    from "src/main/resources"
    exclude "**/AVRO/**"
    into "$buildDir/rpm/config"
}

//复制linux脚本文件
task copyScripts(type: Copy){
    from "${project.rootDir}/scripts"
    into "$buildDir/rpm/scripts"
    fileMode 0755
}

//复制依赖,包括源代码的jar包
task copyLib(type: Copy){
    from configurations.runtime
    //from "$buildDir/libs"
    into "$buildDir/rpm/lib"
    fileMode 0755
}

task copyClasses(type: Copy){
    from "$buildDir/classes/java/main"
    into "$buildDir/rpm/"
}

//build任务默认会生成没有包含资源文件和manifest文件的jar包
//删除上一次打包的rpm包,保证新的编译开始之前删除老的build文件,而不会是新的编译完后再删除
compileJava.dependsOn clean

//保证 copyConfig, copyScripts, copyLib, copyClasses四个task在build后面执行
build.finalizedBy copyConfig
build.finalizedBy copyScripts
build.finalizedBy copyLib
build.finalizedBy copyClasses

/**虽然clean, build, copyConfig, copyScripts, copyLib, copyClasses会先于pkgAll执行,但是这6个task的执行顺序并不确定
 * 所以需要定义这6个task的执行顺序
 */
task pkgAll(dependsOn:[clean, build, copyConfig, copyScripts, copyLib, copyClasses]){
    doLast{
        println "$project.name package created successfully"
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值