Java项目使用Gradle编译打包

本文详细介绍如何使用Gradle将Java项目编译并打包成jar文件,包括配置build.gradle文件,设置依赖,以及如何处理包含mapper.xml文件的情况。

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

首先我们先明确一点,我们是要使用Gradle将一个Java项目编译打包成一个jar包,尽量不对原工程进行大的改动。我们只需要在项目目录下新建一个build.gradle文件,内容如下,具体的我们后面再解释。

buildscript {
	repositories {
		maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
	}
}

apply plugin: 'java'

group = 'com.kanaiji'
version = '1.0.0'
ext{sourceCompatibility = '1.7'}

repositories {
	maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}


sourceSets {
	main {
		java {
			srcDir 'src'
		}
	}
}

task mapperXmlCopy(type: Copy) {
    copy {
        from("src/com/kanaiji/dao/mapper") {
            include ("**/*Mapper.xml")
        }
        into("${buildDir}/classes/java/main/com/kanaij/dao/mapper")
    }
}

dependencies {
	compile fileTree(dir:'war/WEB-INF/lib',include:['*.jar'])
	compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}

jar {  
    baseName = 'JavaToGradleDemo'  
    version =  '0.1.0'  
} 

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


 repositories  : 为了提高下载速度,我们将仓库换成阿里云的。

 

apply plugin: 'java'

告诉gradle我们这是要编译java代码

 

sourceCompatibility = '1.7'

指定编译.java文件的jdk版本

 

sourceSets的srcDir后面指定你的.java文件所在目录,比如我的包名是com.kanaiji.dao.mapper...,这里就写com目录的父级目录

 

如果你的java项目中还包含了mapper.xml文件需要一起打包进jar,在这里我们采取的是新建一个task,作用是将xml文件复制进目的包下,from的地址仿照srcDir填,into的地址前面这么写${buildDir}/classes/java/main,因为编译后的class文件啥的默认会在classes/java/main下,后面的路径填你想把xml复制到的包路径。

 

dependencies填写项目的依赖,compile fileTree后面填写你本地依赖的jar包存放地址,如果你的项目用到了HttpServletRequest等tomcat提供的jar,那么你还需要单独引入,这样编译才不会报错。

 

jar里面的内容是打包生成jar包的名字和版本号

 

tasks.withType,如果你的代码中包含中文的话,指定编码,否则中文会乱码

 

建好build.gradle文件以后,在build.gradle文件所在目录下打开命令提示符,输入gradle build,这时候在项目目录下会生成build目录,我们需要的jar包就在build目录的libs目录中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值