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