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

湖南城市建设网站正规网站建设建设公司

湖南城市建设网站,正规网站建设建设公司,网络营销课程思政,wordpress 字体颜色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.laogonggong.com/news/121040.html

相关文章:

  • 做国外网站汇款用途是什么创意设计服务是什么
  • 木门网站模板网址怎么弄
  • 便宜网站制作创意网页设计论文
  • 手机登录网站后台微信 网站 优劣势
  • 定制网站建设公司医药企业vi设计
  • 官方网站建设流程专门做女性产品的网站
  • 北京市建设工程信息网官方网站云南网络营销推广
  • 十堰市住房和城乡建设厅官方网站网站 建设 后台管理程序
  • 企业网站开发协议敦煌网外贸论坛
  • 网站开发看书怎么做网站的点击率
  • 网站首页排名seo搜索优化先做网站还是app
  • ps做图软件怎么下载网站wordpress内容里的图片大小
  • 响应式网站demo网站开发需要有登陆界面的网站
  • 品牌建设工作实施方案十堰优化排名技术厂家
  • 微网站wordpress 适合程序员主题
  • 百度优化只做移动网站没有pc站济南网站建设和优化
  • 网站管理系统安装wordpress安装音乐插件怎么用
  • 做的物流网站有哪些做模板网站
  • 代理加盟微信网站建设wordpress 重写 函数
  • 学做川菜网站wordpress的好
  • 辽宁省建设厅特种工查询网站网店建设方案
  • 如何在腾讯云上建设网站上海排名前十的装修公司
  • 上海专业网站建设网wordpress付款
  • 企查查网站汕头网站制作多少钱
  • 个人网站icp备案十大进销存管理软件
  • 免费爱做网站网页设计理念及设计思路
  • 网站即时到账要怎么做网站售后服务模板
  • 一家专门做母婴的网站怎么用.net做网站
  • 个人淘宝客网站蜘蛛seo超级外链工具
  • 担路网如何快速做网站怎样在微信小程序里开店