gradle如何使用allprojects、sub和project

2025-10-29 07:39:20

1、在正确安装好gradle之后(这里就不介绍安装方法了),就可以开始对allprojects、subprojects和project使用方法进行测试,新建一个文件夹test_master用来测试,在文件夹里新建build.gradle和settings.gradle文件

gradle如何使用allprojects、sub和project

2、在test_master文件夹里再新建两个子目录

在settings.gradle文件里写入

include 'server', 'client'

意思是包含server和client两个子项目

在build.gradle文件中写入,添加allprojects,定义一个名为hello的任务,任务里使用doLast表示项目构件的时候最后执行

allprojects {

    task hello {

        doLast { task ->

            println "I'm $task.project.name"

        }

    }

}

gradle如何使用allprojects、sub和project

3、使用cmd窗口,切换到刚刚新建的测试目录,如图,执行gradle -q hello命令,-q关闭一些命令中的log信息,只显示打印信息等,从打印信息可以看出,test_master、server和client三个项目模块都执行了doLast方法,说明在allprojects里面添加的任务方法都会在每个模块项目执行一次,由此我们可以把所有公共的行为放在allprojects中定义

gradle如何使用allprojects、sub和project

4、在build.gradle中再添加subprojects

subprojects {

    hello {

        doLast {

            println "- I depend on master"

        }

    }

}

同样再次执行gradle -q hello命令,从图中的打印结果可以看出,除里test_master项目模块,server和client打印了信息。说明subprojects只是针对子项目有效

gradle如何使用allprojects、sub和project

5、在build.gradle中再添加project

project(':client').hello {

    doLast {

        println "- I'm the client with 'project' test."

    }

}

同样再次执行gradle -q hello命令,从图中的打印结果可以看出,只有client打印了最后添加的打印信息,说明project(':client')这种方式是针对一个指定的模块执行的

gradle如何使用allprojects、sub和project

6、其实project(':client')的定义,我们可以放在client目录下面的build.gradle中定义,将master的build.gradle的project(':client')删掉,在client目录下的build.gradle中添加

hello.doLast {

    println "- I'm the client with 'self project' test."

}

从图中的打印结果可以看出,效果和上面的一样

gradle如何使用allprojects、sub和project

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢