博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gradle multi-project
阅读量:6864 次
发布时间:2019-06-26

本文共 3141 字,大约阅读时间需要 10 分钟。

hot3.png

创建multi-project,需要在rootProject的目录下新建settings.gradle.

    目录: I:\gretty\hello-gradle\multi-ProjectMode                LastWriteTime     Length Name----                -------------     ------ ----d----         2014/11/8     14:04            .gradled----         2014/11/8     14:00            flowerd----         2014/11/8     14:00            tree-a---         2014/11/8     14:11        267 build.gradle-a---         2014/11/8     14:05         23 settings.gradle

  根据上面的目录我们可以像这样设置settings.gradle

include 'tree','flower'

  执行gradle projects

PS I:\gretty\hello-gradle\multi-Project> gradle projects:projects------------------------------------------------------------Root project------------------------------------------------------------Root project 'multi-Project'+--- Project ':flower'\--- Project ':tree'To see a list of the tasks of a project, run gradle 
:tasksFor example, try running gradle :flower:tasksBUILD SUCCESSFULTotal time: 4.414 secs

  这样我们就新建了一个gradle 的multi-project的项目。

 涉及到multi-project的设置,有allProjects subProjects,可以对其进行配置。

1 allProjects,包括rootProject和所有的subProject都可以根据allProject中的配置构建项目。

allprojects {  task printInfo << {  println "This is ${project.name}"}我们执行gradle printInfoPS I:\gretty\hello-gradle\multi-Project> gradle printInfo:printInfoThis is multi-Project:flower:printInfoThis is flower:tree:printInfoThis is treeBUILD SUCCESSFULTotal time: 6.189 secs

  可以看到rootProject和subProject都执行task printInfo。

 2 subprojects,只有子项目执行的任务

subprojects {	task printInfo << {		println "Can be planted"	}}PS I:\gretty\hello-gradle\multi-Project> gradle printInfo:flower:printInfoCan be planted:tree:printInfoCan be plantedBUILD SUCCESSFUL

  3 我们还可以使用project(":tree"),来指定项目运行任务

allprojects {task printInfo << {println "This is ${project.name}"}}subprojects {	printInfo << {		println "Can be planted"	}}project(':tree').printInfo << {	println "Has leaves"}project(':flower') {	printInfo.doLast {		println 'Smells nice'	}}执行 gradle printInfoPS I:\gretty\hello-gradle\multi-Project> gradle printInfo:printInfoThis is multi-Project:flower:printInfoThis is flowerCan be plantedSmells nice:tree:printInfoThis is treeCan be plantedHas leavesBUILD SUCCESSFULTotal time: 8.444 secs

 从上面的输出我们也可以看得出任务的执行顺序。

4 过滤配置

allprojects {    task printInfo << {        println "This is ${project.name}"    }}configure(allprojects.findAll { it.name.startsWith('f') }) {        printInfo << {            println 'Smells nice'        }}PS I:\gretty\hello-gradle\multi-Project> gradle printInfo:printInfoThis is multi-Project:flower:printInfoThis is flowerSmells nice:tree:printInfoThis is treeBUILD SUCCESSFULTotal time: 8.195 secs

  使用afterEvaluate 进行过滤

 

allprojects {task printInfo << {println "This is ${project.name}"}}subprojects {afterEvaluate { project ->if (project.hasLeaves) {project.printInfo << {println 'Has leaves'}}}}project(':flower') {ext.hasLeaves = false}project(':tree') {ext.hasLeaves = true}执行gradle printInfoPS I:\gretty\hello-gradle\multi-Project> gradle printInfo:printInfoThis is multi-Project:flower:printInfoThis is flower:tree:printInfoThis is treeHas leavesBUILD SUCCESSFUL

转载于:https://my.oschina.net/u/572499/blog/342240

你可能感兴趣的文章
Android 轮询最佳实践 Service + AlarmManager+Thread
查看>>
Android adb常用命令
查看>>
2012组策略自动部署wsus
查看>>
淘宝天猫网站停止支持IE6、IE7浏览器,你还在用xp吗?
查看>>
Jupyter Notebook 添加目录
查看>>
如何在Linux上从命令行嗅探HTTP流量
查看>>
AIX下两个常用命令
查看>>
从抵触到力推,.Net Core 的成功让微软正视开源
查看>>
Loadrunner11如何使用非IE浏览器录制脚本
查看>>
ACL-文件访问控制列表
查看>>
css解决div子元素margin溢出的问题
查看>>
linux内核参数注释与优化
查看>>
grep小练习
查看>>
英语文章、常用短语部分摘选集锦
查看>>
ADMT3.2域迁移之Server2003至Server2012系列(七)安装ADMT3.2
查看>>
DISPLAY环境变量的作用
查看>>
006.递归和分治思想
查看>>
FTP服务器端程序分类
查看>>
CSS布局之品字布局
查看>>
LINUX学习笔记高度浓缩版之一 :用户管理、启动过程、硬盘管理
查看>>