从一个构建工程中了解gradle的基本概念
构建工具中的元素
构建文件
构建的输入和输出
构建引擎
依赖管理器
参考 gradle实战的案例
https://github.com/bmuschko/gradle-in-action-source
一个好用的gradle插件
https://github.com/townsfolk/gradle-templates
插件:
gradle 构建一个javaweb项目
在构建文件build.gradle中
apply plugin: 'java'
gradle build 是java插件提供的任务,在默认的项目目录下执行编译,运行测试,组装jar文件。
添加辅助信息例如:
apply plugin: 'java'
apply plugin: 'maven'
group = 'com'
version = '0.0.1-SNAPSHOT'
description = """ums"""
sourceCompatibility = 1.8
targetCompatibility = 1.8
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
项目约定的配置属性
java项目约定的项目布局
src/main/java
/resources
src/test/java
/resource
倘若没有按照固定的目录,那么可以在build文件中指定编译目录
/**
* 自定义项目编译目录,均是当前build文件的相对路径
*/
sourceSets{
main{
java{
srcDirs=['src']
}
}
test{
java{
srcDirs=['test']
}
}
}
buildDir = 'out';
配置依赖
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
mavenLocal();
}
dependencies {
compile group: 'org.apache.poi', name: 'poi-ooxml', version:'3.9'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version:'2.7'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version:'2.7'
compile group: 'org.apache.commons', name: 'commons-lang3', version:'3.5'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version:'4.5.3'
......
}
gradle 构建和运行javaWeb项目,可以使用war插件和jetty插件。
war插件扩展自java插件,为web应用部署和组装war添加了约定和支持。
javaweb项目约定的布局
build.gradle
src/main/java
src/main/webapp
web项目在构建时需要外部依赖,运行时需要。
//todo
dependencies{
providedCompile 'javax.servlet:servlet-api:2.5'
runtime 'javax.servlet:jstl:1.1.2'
}
java Web项目目录定制
例如:
build.gradle
src/main/java
static/css
webfiles/WEB-INFO/web.xml
webfiles/jsp/
那么,可以在build文件中如下设置:
```
//指定war包的目录
webAppDirName = 'webfiles'
//指定包含war的路径
war{
from 'static'
}
“`
添加jetty插件
apply plugin: ‘jetty’
apply from: ‘https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin’
如果如上的第一条语句报错,jettyy插件无法找到,那么可以选择第二条语句,下载gretty插件。
定制jetty插件的属性,例如端口号,上下文等。
jettyRUn{
httpPort = 9090
contextPath='zums';
}