gradle多项目构建
由于最近在研究多项目构建,查阅了一些博客,感觉不如索性自己看看文档,原文在https://guides.gradle.org/creating-multi-project-builds/,另附两个链接,
github上有些gradle的项目,供参考,https://github.com/gradle,
官网上还有一些英文书籍,https://gradle.org/books/。
下为正文。
1. 创建根项目
1.1 创建项目,执行以下命令
C:\Users\Administrator>d:
D:\>cd D:\personal
D:\personal>mkdir creating-multi-project-builds
D:\personal>cd creating-multi-project-builds
D:\personal\creating-multi-project-builds>gradle init
BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed
1.2 去掉settings.gradle中自动生成的文件,只留下rootProject.name = ‘creating-multi-project-builds’
1.3 在多项目中,可以在最顶层(根目录下)的构建文件中配置尽可能多的通用属性,让子项目管理自己所需的属性。
1.4 当不带任何参数执行inti task的时候,会生成一个build.gradle文件,文件中注释的内容是一个基本的Java构建配置。
将其中内容替换成下面内容(配置通用的资源库),
allprojects {
repositories {
jcenter()
}
}
1.5 allprojects 中可以配置一些系统属性,被整个子项目以及根项目使用。类似的,subprojects中可以配置一些属性,只能
被子项目使用,例如,为子项目设置统一的版本号,即可在根目录下的build.gradle中设置,
subprojects {
version = '1.0'
}
2. 创建子项目
2.1 创建greeting-library子项目,控制台执行下面命令,
mkdir greeting-library
在文件下创建build.gradle文件,在文件中添加对groovy的依赖,
apply plugin : 'groovy'
dependencies {
compile 'org.codehaus.groovy:groovy:2.4.10'
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4', {
exclude module : 'groovy-all'
}
}
修改根目录下的settings.gradle文件,使greeting-library成为多项目构建的一部分。
include 'greeting-library'
在greeting-library增加文件夹src/main/groovy/greeter和src/test/groovy/greeter(这块我是手动创建的),
$ mkdir -p src/main/groovy/greeter
$ mkdir -p src/test/groovy/greeter
在src/main/groovy下增加GreetingFormatter类
greeting-library/src/main/groovy/greeter/GreetingFormatter.groovy
package greeter
import groovy.transform.CompileStatic
@CompileStatic
class GreetingFormatter {
static String greeting(final String name) {
"Hello, ${name.capitalize()}"
}
}
在src/test/groovy中增加GreetingFormatterSpec类
greeting-library/src/test/groovy/greeter/GreetingFormatterSpec.groovy
package greeter
import spock.lang.Specification
class GreetingFormatterSpec extends Specification {
def 'Creating a greeting'() {
expect: 'The greeeting to be correctly capitalized'
GreetingFormatter.greeting('gradlephant') == 'Hello, Gradlephant'
}
}
未完待续……
更多有趣,好玩的信息请关注我的微信公众号!
推荐阅读