0%

使用gradle给旧项目打包

下载gradle并配置环境变量

完成后在命令行输入gradle -v,查看是否配置正确。

建立配置文件

在项目根目录新建名为build.gradle的配置文件。

文件中写入如下配置:

1
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
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'])
}

因为我的项目有多个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并进行配置。