使用Gradle来构建Java项目
在接触软件构造课程之前,我并不了解关于自动build的知识。因为在实验提交时需要将自己的Java项目脱离IDE的环境,所以还是需要掌握一些build的知识的。Java的构建工具有三个比较流行的,它们是:Ant、Maven和Gradle ,我使用的是Gradle,所以简单介绍一下用Gradle来构建Java项目的内容。
关于Gradle的安装以及配置,在这里不做陈述,网上的介绍很多。
构建Java项目
每个Gradle构建都是以一个脚本开始的。Gradle构建脚本的默认名称是build.gradle。在完成脚本的书写之后,在命令行中执行gradle命令时,会自动去寻找名字是build.gradle的文件,然后按照脚本中的内容去执行。
先从一个最简单的例子开始,新建一个build.gradle的文件,在里面输入以下内容:
apply plugin : 'java'
简单的一行语句,便足够构建我们的Java代码,要注意的是,如果只用这一行语句来实现构建,则你的代码目录必须按照gradle默认的格式,下面来具体的看一下build的结果:
我们发现会多出两个文件夹,我们目前只关心build文件夹,它是gradle默认的文件夹,里面包含了构建运行的所有输出,包括class文件、测试报告和jar包。好了,现在来看一下默认代码目录的问题。
改造默认目录
在默认的情况下,gradle认为你的源代码在src/main/java目录下,同样的,它会认为你的测试代码会在src/test/java目录下,可是我们的实验要求的目录结构与默认的不符,因此我们只能自己来定制我们的项目。因为我们实验中源代码是存放在src目录下的,测试代码存放在test目录下,src与test目录是并列的,按照我们实验的目录结构,将脚本进行一下改进:
sourceSets {
main{
java{
srcDirs = ['src']
}
}
test{
java{
srcDirs = ['test']
}
}
}
这样我们就调整好了目录结构。
配置和使用外部依赖
这个很好理解,我们的测试代码使用了JUnit库,因此我们需要在脚本中说明这一点:
dependencies {
compile files('lib/junit-4.10.jar');
}
我将junit-4.10.jar放到了lib目录下,因此我才这么写。要根据个人的不同情况,来声明依赖。
当然你也可以使用一些仓库中的类库,这样的话你就不需要在本地目录下存放具体的类库了,如下:
repositories{
mavenCentral ()
}
这里使用了公共的Maven公共仓库。
到这里,脚本基本就写好了,满足我们最基本的Java项目构建是没有问题的。以下是完整的脚本:
apply plugin: 'java'
sourceSets {
main{
java{
srcDirs = ['src']
}
}
test{
java{
srcDirs = ['test']
}
}
}
dependencies {
compile files('lib/junit-4.10.jar');
}
我们来build试试,完成之后会生成build文件夹,打开这个文件夹我们能看到测试报告以及其他的文件,测试报告会显示我们的测试结果,如下所示:
注:
1.实验指的是哈尔滨工业大学软件构造课的实验
2.要想系统的学习Gradle的知识,推荐《实战Gradle》
3.该博客参考了《实战Gradle》中的一些知识