独自登高楼 望断天涯路

学lucene 学hadoop,Google/baidu搜:“独自登高楼”,进入本博客

Gradle学习(六)——多项目构建

转载请注明出处http://blog.csdn.net/lastsweetop/article/details/78875987

只有一个的构建文件和资源层级的通常是很小的项目,很少有一个超大而且还是不可分割的项目。把一个项目拆分成几个相互依赖的小项目更容易有助于理解,相互依赖很重要,可以通过一次构建过程把多个项目构建起来。在Gradle中,这叫做多项目构建。

多项目构建的结构

多项目构建的结构可以能有多种多样的层次结构和大小,但是他们有一些共同点:

  • 在项目的root或者master目录下有个settings.gradle文件
  • 在项目的root或者master目录下有个build.gradle文件
  • 子目录有各自的*.gradle文件(有些项目可能直接忽略子项目的构建脚本)

build.gradle告诉Gradle根项目和子项目是如何组织的,你并不需要读这个文件才能了解这些。你仅仅需要执行gradle projects命令,输出如下:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'studygradle'
+--- Project ':subdir' - this is a subproject
\--- Project ':tools'
     +--- Project ':tools:client'
     \--- Project ':tools:server'

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :subdir:tasks

输出指明了这个多项目有两个子项目subdir和tools,tools子项目又有它自己的子项目client和server,这些可以映射到文件系统的目录结构,很容易找到client在文件夹studygradle/tools/client。

默认情况下,Gradle会以在settings.gradle找到的目录的文件名作为子项目的项目名。同一个项目组的所有开发者check out的都是同样的目录,大多数情况下不会出什么问题。但是在持续集成环境中,比如Jenkins这些目录可能是自动生成的并不会和版本控制服务器的目录一致。这种情况下,你应该设置root工程的名字,即使是单个项目。可以在settings.gradle文章中设置:

rootProject.name='studygradle'

通常每个项目都有它自己的构建文件,但是事实上也并非如此,比如tools子项目仅仅是其他连个子项目的容器,并不需要构建文件,在它对应的目录中并没有构建文件,但是root项目最好有自己的构建文件。

root项目的构建文件通常用于配置一些在子项目中有共性的配置,比如为所以子项目配置共用的插件和依赖。root的构建文件还可以配置单独的子项目,因为有些配置全部集中在一起可能更容易管理。

有时候构建文件名称并不一定是build.gradle,这就需要在settings.gradle中配置:

project(':tools:client').buildFileName='client.gradle'

多项目构建

从用户的视角来看,多项目构建就是一组需要执行的任务集合,不同的一点就是你需要控制去执行哪个项目的任务,这有两个方法:

  • 进入相应的目录,执行gradle <task>命令
  • 在随意一个目录执行限定的任务名,同城都是root目录中,比如 gradle :tools:client:build将会执行子项目tools的子项目client的构建任务。

第一种方法和单一项目非常类似,但是多项目下,机制确是不同的,在相应项目中执行任务,将会执行对应子项目名称相同的任务,比如在root目录中执行gradle test,那么所有的子项目也都会执行test任务,如果在tools目录下执行gradle test,那么tools的子项目也都会执行test任务

为了更好的控制任务的执行范围,建议最好使用第二种方法,限定名称第一个:表示根路径,其他的:表示分隔符,类似于文件的分隔符,这种方法可以让构建非常灵活有效。

无论哪种构建,一个项目被构建,那么它依赖的其他项目也必定被构建,你不需要担心这些,你只需要配置项目的依赖关系即可。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lastsweetop/article/details/78875987
文章标签: gradle
个人分类: gradle
所属专栏: Gradle学习
想对作者说点什么? 我来说一句

gradle多模块开发项目实例

2014年11月04日 80KB 下载

gradle项目实例

2016年12月06日 39KB 下载

没有更多推荐了,返回首页

不良信息举报

Gradle学习(六)——多项目构建

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭