当前位置: 首页 > news >正文

站酷网电脑版建设网站计划 ppt

站酷网电脑版,建设网站计划 ppt,保健品网站模版,深圳专业建网站公司排行Gradle构建脚本基础 Project: 根据业务抽取出来的一个个独立的模块Task#xff1a;一个操作#xff0c;一个原子性操作。比如上传一个jar到maven中心库等Setting.gradle文件#xff1a;初始化及整个工程的配置入口build.gradle文件: 每个Project都会有个build.gradle的文件…Gradle构建脚本基础 Project: 根据业务抽取出来的一个个独立的模块Task一个操作一个原子性操作。比如上传一个jar到maven中心库等Setting.gradle文件初始化及整个工程的配置入口build.gradle文件: 每个Project都会有个build.gradle的文件是Project构建的入口。Root Project也有一个build.gradle文件可以获取到所有的Child Project, 并且可以对所有的Child Project进行统一配置如应用的三方插件、三方依赖库等。如我们可以在Root Project的build.gradle文件里配置 allprojects {repositories {jcenter()} }这样项目中所有依赖的三方库都可以在jcenter中下载了省去了对每个Project去配置的情况。 上面用到的是allprojects还可以配置subprojects他们的区别在于allprojects是对所有project的配置包括Root Project。而subprojects是对所有Child Project的配置。更详细的请移步https://blog.csdn.net/u013700502/article/details/85231687 1、创建一个task Task的创建方式可以是 task hello {doFirst {print hello:doFirst\n}doLast {print hello:doLast\n} }也可以是 tasks.create(hello) {doFirst {print hello:doFirst}doLast {print hello:doLast} }他们执行的结果都是一样的 bogon:test_gradle mq$ gradle -q hello hello:doFirst hello:doLasttask是Project对象的一个函数原型为Task create(String name, Closure configureClosure)最后一个参数是闭包的时候可以放到括号外面并且括号可以省略task中的doFirst和doLast分别在任务前后执行。 如需完整版Gradle学习资料 请点击免费领取 2、创建Task的几种方式 1、调用Project对象的task(String name)方法如 def Task hello task(hello);hello {print hello\n }输出 bogon:test_gradle mq$ gradle -q hello hello2、任务名字闭包方式如 task hello {description 任务描述doLast {print 方法原型 Task task(String name, Closure configureClosure)\nprint 任务描述 ${description}} }输出结果 bogon:test_gradle mq$ gradle -q hello 方法原型 Task task(String name, Closure configureClosure) 任务描述 任务描述3、TaskContainer方式创建 tasks.create(hello) {description 任务描述doLast {print 方法原型 Task create(String name, Closure configureClosure)\nprint 任务描述 ${description}} }输出结果: 方法原型 Task create(String name, Closure configureClosure) 任务描述 任务描述tasks是Project的属性其类型是TaskContainer。其中1和2的创建最终也是调用TaskContainer方式创建的。 3、Task内部执行顺序 当我们执行Task的时候就是执行其拥有的actions列表是一个List。把Task执行之前、Task本身执行、Task之后执行分别称为doFirst、doSelf、doLast先来看个例子 def Task hello task myTask(type: CustomTask);hello.doFirst {print Task执行之前 do-First\n }hello.doLast {print Task执行之后 do-Last\n }class CustomTask extends DefaultTask {TaskActiondef doself() {print Task执行自身 do-self\n} }输出 bogon:test_gradle mq$ gradle -q hello Task执行之前 do-First Task执行自身 do-self Task执行之后 do-Last通过结果发现确实是按照我们想要的顺序执行的。Gradle在执行hello这个任务的时候Gradle会解析其带有TaskAction注解的方法作为其Task执行的Action并且把其加入到actionList中。而doFirst、doLast分别会在actionList的最前面和最后面加入所以之后就达到了按顺序执行。 4、Task任务依赖 任务之间是可以有依赖关系的使用dependsOn执行当前task依赖的任务如 task hello {print hello }task world(dependsOn: hello) {doLast {print world}}此时执行gradle -q world,结果如下 bogon:test_gradle mq$ gradle -q world hello world因为world任务是依赖hello的所以当执行world后先去执行了hello任务再执行world任务。dependsOn是Task类的一个方法可以接受多个依赖的任务作为参数。 修改以下程序 task hello {print hello\n }task world(dependsOn: hello) {doLast {print world\n} }world.doFirst {print doFirst\n }world.doLast {print doLast2\n }结果 bogon:test_gradle mq$ gradle -q world hello doFirst world doLast2通过结果可以看出doFirst和doLast可以使用多次并且按顺序执行。doLast可以用 操作符替代。 5、自定义属性 Project和Task允许添加额外自定义属性通过对应的ext属性即可如 //自定义一个Project的属性 ext.buildTime 2018//自定义多个属性 ext {buildTime 2018month 12 }task time {doLast {print 构建时间${buildTime} 年${month}月 \n} }执行gradle -q time,执行结果 bogon:test_gradle mq$ gradle -q time 构建时间2018 年12月可见我们自定义的属性正确地取到了自定义属性的作用域很广只要能得到对应的Project就能获取到定义的属性值。在Android中我们通常使用自定义属性值来定义我们的版本号、版本名称等把这些放到一个单独的gradle文件中因为他们在发版前就会变动放到单独的gradle文件中便于管理在AS根目录下新建config.gradle如下 //config.gradle ext {android [compileSdkVersion: 26,buildToolsVersion: 25.0.0,versionName : 6.2.1,versionCode : 6210,minSdkVersion : 16,targetSdkVersion : 23]}在APP对应的build.gradle中取值 //build.gradle apply from: rootProject.getRootDir().getAbsolutePath() /config.gradlecompileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion就可以获取到自定义的属性值。 上例中除了能获取到config.gradle中的属性值还可以在build.gradle中调用config.gradle中的方法具体实现 //config.gradle ext {.......其他.........//注意方法和属性写法的区别copyApk this.copyApk }def copyApk() {}在build.gradle调用 //build.gradle apply from: rootProject.getRootDir().getAbsolutePath() /config.gradlecopyApk()这样就实现了在build.gradle中调用config.gradle中的copyApk()方法了。
http://www.w-s-a.com/news/762465/

相关文章:

  • 个人网站可以做地方技能培训班
  • 品牌营销策略研究无锡 网站 seo 优化
  • 在线推广网站的方法有哪些织梦网站首页目录在哪
  • 做爰全过程免费网站的视频做网站的几个步骤
  • cpa建站教程青海西宁制作网站企业
  • 简易的在线数据库网站模板网站多服务器建设
  • 成都seo网站建设花店网页模板html
  • 义乌市网站制作网络营销策略名词解释
  • 高端品牌网站建设图片wordpress 资源站主题
  • 上海建设工程监督总站网站电商网站wordpress
  • 网站建设 医院菏泽网站建设熊掌号
  • 成都网站建设企业预约网免费建站流程
  • 网站建设胶州中国政务网站建设绩效评估
  • 合肥知名网站推广胶东国际机场建设有限公司网站
  • asp.ney旅游信息网站下载 简洁濮阳微信网站开发
  • 建设网站专业怎么上传网站程序到空间
  • 县城乡建设局网站微商城小程序哪个好
  • 博物馆门户网站建设优势重庆seo排名系统运营
  • 哪有app制作公司上海seo排名
  • 长沙建站seo公司北京招聘信息
  • 建设网站情况说明范文四川个人证书查询网官网
  • 推广学校网站怎么做公司可以做多个网站吗
  • 游戏网站后台建设郑州定制网站
  • 商务公司网站建设网站建设如何自学
  • 现在建网站可以拖拉式的吗中国国内最新新闻
  • phpstorm网站开发产品logo设计
  • 电子商务网站建设与运营什么是单页面网站
  • 西安优化网站公司南阳微信网站
  • 购物网站线下推广方案佛山快速建站哪家服务专业
  • 临沂网站排名外贸网站推广方法之一