趣百科

gradle如何使用allprojects、sub和project

编辑:Simone 2025-04-28 13:09:15 507 阅读

gradle如何使用allprojects、sub和project

Gradle是一种构建工具,目前比较受欢迎。关于gradle的allprojects、subprojects和project使用,很多人都不知道怎样合理的使用,下面就结合示例说明如何使用

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

在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"

}

}

}

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

在build.gradle中再添加subprojects

subprojects {

hello {

doLast {

println "- I depend on master"

}

}

}

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

在build.gradle中再添加project

project(':client').hello {

doLast {

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

}

}

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

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

hello.doLast {

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

}

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

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/life/191989.html

相关推荐