使用gradle打包java项目

时间:2022-01-11 09:30:48

一,下载并安装Gradle

1,下载地址:http://services.gradle.org/distributions

2,配置系统的环境变量:
(1)GRADLE_HOME–文件的解压目录
(2)Path–文件的bin目录
(3)CLASSPATH–文件的lib目录

3,在命令提示符中输入gradle -v检测是否配置成功

二,Gradle简介

在Gradle中,有两个基本概念:项目和任务。请看以下详解:
项目是指我们的构建产物(比如Jar包)或实施产物(将应用程序部署到生产环境)。一个项目包含一个或多个任务。
任务是指不可分的最小工作单元,执行构建工作(比如编译项目或执行测试)。
那么,这些概念和Gradle的构建又有什么联系呢?好,每一次Gradle的构建都包含一个或多个项目。
下面这张图展示了上面所谈到的这些概念的关系。

使用gradle打包java项目我们能够使用以下配置文件对Gradle的构建进行配置:
Gradle构建脚本(build.gradle)指定了一个项目和它的任务。
Gradle属性文件(gradle.properties)用来配置构建属性。
Gradle设置文件(gradle.settings)对于只有一个项目的构建而言是可选的,如果我们的构建中包含多于一个项目,那么它就是必须的,因为它描述了哪一个项目参与构建。每一个多项目的构建都必须在项目结构的根目录中加入一个设置文件。
你可以在这篇文章中获得更多关于Gradle构建脚本的信息。

三、下面介绍一下我在构建java项目时的过程:
1,在安装了gradle之后,在新建项目的选项中会有gradle project选项。
使用gradle打包java项目

2,新建了一个gradle project之后,会自动生成gradle的默认目录结构
使用gradle打包java项目
这些目录依次存放的是
(1)项目的源代码
(2)项目的资源
(3)项目的测试类
(4)项目的测试资源

3,新建gradle.build文件
(1)gradle.build文件要新建在项目的根目录下

(2)首先写入下面的语句来添加要使用的插件:

apply plugin: ‘java’
apply plugin: ‘eclipse’

java插件为我们提供了以下一些task供我们使用:
*assemble任务会编译程序中的源代码,并打包生成Jar文件,这个任务不执行单元测试。
*build任务会执行一个完整的项目构建。
*clean任务会删除构建目录。
*compileJava任务会编译程序中的源代码。

以build任务为例,在命令提示符中我们在项目目录下输入gradle build即可完成对一个项目完整的构建,编译完成的.class文件和jar包都在build文件夹中。

(3)配置程序的主类

jar {
manifest {
attributes 'Main-Class': 'MainPro.operatorMain'
}
}

*这里说明一下,如果是从其他地方粘来了大段代码,请检查每行的缩进(最后把空白都删了自己手动添加),有时候会因为一个空格在编译时报错。

(4)添加依赖
如果项目依赖的是一个本地jar包,那么要在项目目录下创建一个libs文件夹来存放所依赖的jar包。并在build.gradle中添加如下语句

dependencies {
compile files('libs/itextpdf-5.5.6.jar')
}

我所构建的项目是只依赖了一个本地jar包,所以并没有涉及到仓库引用。如果需要引用仓库,则需要用到下面这条语句:

repositories {
maven {
url "http://maven.petrikainulainen.net/repo"
}
}

这是用url地址来添加一个Maven仓库,具体依赖和上边依赖本地jar包写法一样。
更多关于仓库的添加可以在仓库管理介绍中查看。

以上这些基本能够完成对java project的管理了。
还有几个需要说明的问题:
*在编译时我们可能会遇到“错误: 编码 GBK 的不可映射字符”这个错误,我们需要在build.gradle中加入
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}

即可
*如果遇到了“ 错误 找不到XXX程序包”这个错误,可能是你的依赖配置出现了问题。
*如果遇到了“错误 : 非法字符: ‘ufeff’ ”这个错误,是因为你的编码采用的是“UTF-8”而不是“UTF-8无BOM格式编码”。