初始化
gradle init 会创建build.gradle和settings.gradle,并且执行wrapper这个task。
allprojects
allprojects块会应用到所有子项目以及root项目。
subprojects
subprojects块会应用到所有子项目,但不包括root项目。
application
apply plugin : 'application'
应用入口:mainClassName
mainClassName = 'greeter.Greeter'
依赖子项目
dependencies {
compile project(':greeting-library')
}
运行子项目的task
./gradlew :greeter:test
文档
plugins {
id 'org.asciidoctor.convert' version '1.5.6' apply false
}
docs子项目:
apply plugin : 'org.asciidoctor.convert'
asciidoctor {
sources {
include 'greeter.adoc'
}
}
build.dependsOn 'asciidoctor'
docs/src/docs/asciidoc/greeter.adoc:
= Greeter Command-line Application
A simple application demonstrating the flexibility of a Gradle multi-project.
== Installation
Unpack the ZIP or TAR file in a suitable location
== Usage
[listing]
----
$ cd greeter-1.0
$ ./bin/greeter gradlephant
Hello, Gradlephant
----
执行asciidoctor 这个task就会生成文档
在发布包中包含文档
distZip {
from project(':docs').asciidoctor, {
into "${project.name}-${version}"
}
}
distTar {
from project(':docs').asciidoctor, {
into "${project.name}-${version}"
}
}
通过project(:NAME).TASKNAME引用其他项目的任务
configure
configure(subprojects.findAll {it.name == 'greeter' || it.name == 'greeting-library'} ) {
apply plugin : 'groovy'
dependencies {
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4', {
exclude module : 'groovy-all'
}
}
}