一、Project的概念

除了项目跟目录是一个Project,只要有build.gradle就是一个Project
image.png

二、Project核心API

1、打印项目所有的Project

可以在项目中的build.gradle 添加以下代码

  1. this.getProjects()
  2. //获取所有项目
  3. def getProjects(){
  4. println '---------------------'
  5. println 'sub Project'
  6. println '-------------------'
  7. // this.getAllprojects().eachWithIndex { Project project, int index ->
  8. // if(index==0){
  9. // println "Root project':${project.name }'"
  10. // }
  11. // else{
  12. // println "+-------project ':${project.name}'"
  13. // }
  14. // }
  15. this.getSubprojects().eachWithIndex { Project project, int index ->
  16. println "+-------project ':${project.name}'"
  17. }
  18. }
  19. //获取父Project(需要在子Module中执行才能获取)
  20. def getParentProject(){
  21. // def name=this.getParent().name
  22. // println "the parent project name is:${name}"
  23. }
  24. //获取rootProject
  25. def getRootPro(){
  26. def name=this.getRootProject().name
  27. println "the root project name is:${name}"
  28. }

因为它是卸载build.gradle,所以执行任何gradle命令,都会执行
在Terminal中执行,gradlew clean
image.png

2、通过路径获取Project

  1. //通过指定路径获取Project,并向其中的build.gradle插入数据
  2. project('app'){ Project pro->
  3. apply plugin:'com.android.application'
  4. group'com.imooc'
  5. version '1.0.0-release'
  6. dependencies {
  7. }
  8. android{
  9. }
  10. }
  11. //配置当前节点工程和其subProject的所有Project
  12. allprojects {
  13. }
  14. //不包含跟目录
  15. subprojects {
  16. //证明是module工程
  17. if(it.plugins.hasPlugin('com.android.library')){
  18. }
  19. }
  20. println project('app').group