一、第一个gradle项目
1. 构建脚本概要
构建块
Gradle构建中的两个基本概念是项目(project)和任务(task),每个构建至少包含一个项目,项目中包含一个或多个任务。在多个项目构建中,一个项目可以依赖于其他项目;类似的,任务可以形成一个依赖关系图来确保他们的执行顺序
- 项目(project)
- group、name、version
- apply、dependencies、repositories、task
- 属性的其他设置方式:ext、gradle.properties
build.gradle
plugins {
id 'java'
id 'war'
}
project.group= 'com.zben.gradle'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
//testCompile group: 'junit', name: 'junit', version: '4.12'
}
- 任务(task)
- dependsOn
- doFirst、doLast <<
build.gradle
//创建自定义任务
task makeJavaDir() {
def paths = ['src/main/java', 'src/main/resources', 'src/test/java', 'src/test/resources']
doFirst {
paths.forEach(createDir)
}
}
task makeWebDir() {
dependsOn 'makeJavaDir'
def paths = ['src/main/webapp', 'src/test/webapp']
doLast {
paths.forEach(createDir)
}
}
2. 构建生命周期
初始化
配置
执行
doFirst {
paths.forEach(createDir)
}
3. 解决冲突
- 修改默认解决策略
configurations.all{
resolutionStrategy{
failOnVersionConflict()
}
}
- 排除传递性依赖
compile('org.hibernate:hibernate-core:3.6.3.Final') {
exclude group: "org.slf4j", module: "slf4j-api"
}
- 强制指定一个版本
configurations.all{
resolutionStrategy{
force 'org.slf4j:slf4j-api:1.7.24'
}
}