使用gradle给旧项目打包
# 下载 gradle 并配置环境变量
完成后在命令行输入 gradle -v,查看是否配置正确。
# 建立配置文件
在项目根目录新建名为 build.gradle 的配置文件。
文件中写入如下配置:
apply plugin: 'war'
// 设置 JDK 版本
sourceCompatibility = 1.6
// 设置 WebApp 根目录
webAppDirName = 'WebRoot'
// 设置 Java 源码所在目录
sourceSets {
main {
java{
// 多个目录 srcDirs 单个用 srcDir ''
srcDirs = ['soo','src/main/java','coresrc/main/java']
}
resources{
// 多个目录 srcDirs 单个用 srcDir ''
srcDirs = ['src/main/resources','coresrc/main/resources']
}
}
}
// 设置 maven 库地址
repositories {
maven {url "http://maven.aliyun.com/nexus/content/groups/public/"}
mavenLocal()
}
dependencies {
tasks.withType(JavaCompile) {
options.encoding = "GBK"
}
// 本地依赖
compileOnly files('F:/lib/weblogic.jar','F:/lib/ojdbc14.jar')
// 有网络是用maven
// providedCompile 'javax.servlet:servlet-api:2.5' // 编译期
compile fileTree(dir: 'WebRoot/WEB-INF/lib', include: ['*.jar'])
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
因为我的项目有多个 java 源文件目录和资源目录所以配置的是 srcDirs。如果只有一个目录,配置 srcDir 即可。至于每个配置项什么含义就需要自己找资料了,基本实现打包功能不需要很多的配置,像 srcDir 就是配置一下 java 源代码位置就好了。
# 编译打包
在项目根目录打开命令行窗口,输入指令 gradle clean build。如果成功会在结束时出现 BUILD SUCCESSFUL。如果没有请查看报错信息,针对性的修改 build.gradle 里面的配置。
打包完成的 war 包就在 ./build/libs/目录下。
# 扩展
上面说的都是自己用的,那么要是团队都来使用 gradle,该如何统一。
假如现在项目组的同事也想和我一样使用 gradle 打包,直接的做法就是我将 build.gradle 提交 svn,大家更新下来,安装 gradle 后,更改自己的本地依赖位置(其实既然使用了 gradle,依赖可以都放到 maven 私有仓库,这样大家可以共用一套配置)。运行 gradle clean build 即可打包。
按照上面的做法,其实 gradle 和 maven 除了配置文件不同,基本没啥区别了。其实 gradle 提供了另一套便于统一协作的机制-gradlew(后来发现 maven 好像也有类似的功能,是我肤浅了)。使用 gradlew 需要在项目根目录执行 gradle init 命令。会生成 wapper 的配置文件。可以将这些文件一同提交 svn,其他同事更新后无需安装 gradle,直接执行 gradlew clean build。gradle 会查找本地的 gradle 环境,没有的话会根据 wapper 配置去互联网下载对应版本的 gradle 进行编译打包。省去自行下载配置环境,还可以保持大家 gradle 版本的统一。
当然了,国内特殊原因,以及每个开发者所处的网络环境不同,下载速度也会受影响。上面的做法不一定能行的通,如果条件不允许,还是自己手动下载 gradle 并进行配置。