Happy Coding, Happy Life

Gradle Learning - 4 (Files&direcoties)

| Comments

在我们使用Gradle构建项目的过程中,免不了要经常和文件打交道,譬如文件拷贝、文件重命名、生成压缩包等。在这方面,Gradle已经提供了非常好的支持,下面我们就来尝试一下如何使用Gradle提供的方式,操作文件或者目录。

1. 文件访问

1). 访问单个文件或者目录

file()将帮助我们访问相对于当前project的文件或者目录,注意不是相对当前的工作目录。因为我们有可能通过参数-p指定运行Gradle脚本的目录,而并不一定非要进入到该目录后再运行gradle。譬如在下面的例子中,当前工作目录是home目录,而gradle当前project的目录则是~/work/project1/ ~> gradle -p ~/work/project1 tasks

Gradle Learning - 3 (Multiple Projects)

| Comments

随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成。对于这种多系统、多项目的情况,很多构建工具都已经提供了不错的支持,像maven、ant。Gradle除了借鉴了ant或者maven的继承的方式定义子项目,也提供了一种更为方便的集中配置的方式,大大减少了构建带来的复杂度。除此之外,Gradle还提供了清晰的Project树模型来映射多项目的组织结构。下面,让我们了解一下如何使用Gradle构建多项目。

1. 多项目定义及结构

在Gradle中,使用文件settings.gradle定义当前项目的子项目,格式如下所示:

include ‘sub-project1’, ‘sub-project2’, ‘sub-project3', 它表示在当前的项目下建立三个子项目,分别为'sub-project1’, ‘sub-project2’, ‘sub-project3'。默认情况下,每个子项目的名称对应着当前操作系统目录下的一个子目录。

Gradle Learning - 2 (Project&task)

| Comments

上一篇文章中,我们提到了Gradle的一些基本概念,如Project、Task以及Action,并且创建了我们的第一个Task。这次我们来看看Gradle中关于Project和Task的更多细节。

1. Project和Task

对于build.gradle配置文件,当运行Gradle 时,Gradle会为我们创建一个Project的对象,加载build.gradle中的所有代码。其中呢,对于Task中定义的代码,Gradle会创建Task的实例,而对于那些不属于任何Task定义的代码,Gradle会创建一个Script类的实例,加载并执行这些代码。下面,让我们看一个简单的例子:

创建目录basic,并在其中创建文件build.gradle,然后加入如下代码:
println "the project name is $name"
task hello << {
    println "the current task name is $name"
    println "hello world"
}

Gradle Learning - 1 (Basic Concepts)

| Comments

前提: 安装Gradle

安装过程非常简单:

(1)下载Gradle (2)设置GRADLE_HOME (3)将GRADLE_HOME/bin/gradle加入$PATH

1.基本概念(Project 和 Task)

Gradle中有两个基本的概念:project和task。每个Gradle的构建由一个或者多个project构成(有且仅有一个root-project以及多个可能存在的sub-project),代表着需要被构建的根项目以及可能包括的多个子项目。每个project由一个或者多个task组成,而task则是Gradle构建过程中可执行的最小单元。譬如,当构建一个Java项目时,可能需要先编译、打包、然后再发布,这其中的每一个动作,都可以定义成一个task。

2.构建第一个Task

和Ant运行时读取build.xml类似,Gradle运行时默认会读取build.gradle这个文件, 当然你也可以使用参数"-b"来指定其他的gradle文件。

下面,让我们新建一个build.gradle文件,然后输入如下内容:

task hello {
    doLast{
        println "hello world"
    }
}