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'

    }
}

未完待续……

更多有趣,好玩的信息请关注我的微信公众号!

这里写代码片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值