快速牵手JAVA
- Gradle将把你从传统的构建流程中解放出来,针对不同的语言它有着各种不同的插件,通过插件封装了基本流程
-
如何使用JAVA插件?只要一行代码
apply plugin: 'java'
这就定义了一个java项目的全部,自动添加很多task
Gradle 会在 src/main/java 目录下寻找产品代码,在 src/test/java 寻找测试代码 。
另外在 src/main/resources 包含了资源的 JAR 文件, src/test/resources 包含了运行测试。
所有的输出都在 build 目录下,JAR 在 build/libs 目录下
- 外部依赖
和Maven一样,我们也可以使用maven repository
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.springframework', name: 'spring-core', version: '4.2.5.RELEASE'
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
Maven respository网站上已经提供了各种工具包的依赖,稍微改变下格式描述就可以了
(下面将会介绍到Groovy插件,它更强大是java插件的扩展)
执行 gradle build
- 需要注意的是一个groovy项目也是一个java项目
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.6'
compile 'commons-logging:commons-logging:1.2'
compile 'org.springframework:spring-core:4.2.5.RELEASE'
testCompile 'junit:junit:4.11'
}
比之前的java插件更强大哦, 而且依赖的描述也更简单了,从respository中直接copy就行了
快速开始Web应用
构建WAR文件
- 使用war插件来构建war文件
apply plugin: 'war'
当运行 gradle build时就会编译、测试、打包工程一个war文件
- 运行应用插件
apply plugin: 'jetty'
当你运行 gradle jettyRun 的时候,应用将会运行在一个内嵌的jetty web容器中
gradle的Task执行规则
- 同个构建可以执行多个task,但每个task只能被执行一次,不管它是在哪个阶段被执行
task compile << {
println 'compiling source'
}
task compileTest(dependsOn: compile) << {
println 'compiling unit tests'
}
task test(dependsOn: [compile, compileTest]) << {
println 'running unit tests'
}
task dist(dependsOn: [compile, test]) << {
println 'building the distribution'
}
执行 gradle dist结果如下