task makeJar(type:org.gradle.api.tasks.bundling.Jar) {//指定生成的jar名baseName 'drisk'//从哪里打包class文件from('build/intermediates/classes/debug/com/ijm/drisk')//打包到jar后的目录结构into('com/ijm/drisk')//去掉不需要打包的目录和文件//exclude('ui', 'uuid')//过滤不需要打入jar包的文件(以ui,uuid,M开头的目录和文件)exclude('ui', 'uuid', 'M')//指定打包的class//include "com/xxx/drisk/*.class"
}task copyFile(type: org.gradle.api.tasks.Copy){from('build/libs/drisk.jar', 'libs/xxx.jar', 'src/main/libs')into('build/sdk')
}task deleteSdk(type: org.gradle.api.tasks.Delete){delete('build/sdk')
}makeJar.dependsOn(build)
copyFile.dependsOn(deleteSdk)

dependsOn表示在自己之前先执行这个方法

uiTest.mustRunAfter unitTest
执行``gradle uiTest unitTest -q```会输出如下结果,说明unitTest是在uiTest之前运行的。

Compiled
Unit test
UI test

https://www.jianshu.com/p/d6a3ea60ccf3

repositories {flatDir {dirs 'libs'}
}
compile(name: 'mergedsdk-release', ext: 'aar')

举个例子

task makeJar(type: org.gradle.api.tasks.bundling.Jar) {from('build/intermediates/classes/release', 'cacheclass')destinationDir = file('libs')baseName 'mysdk'
}
build.dependsOn(makeJar)

干涉arr生成流程.

task copyFile(type: org.gradle.api.tasks.Copy) {from('cacheclass')into('build/intermediates/classes/release')//    from('cacheclass')
//    into('build/intermediates/classes/release')}task deleteSdk(type: org.gradle.api.tasks.Delete) {delete('build/intermediates/classes/release')
}//makeJar.dependsOn(build)
//copyFile.dependsOn(deleteSdk)//copyFile.dependsOn(build)//通过执行copyFile任务触发 cooyFile在 build之后执行,无法拦截 arr的生成。
//build.dependsOn(copyFile)// copyFile先与build执行。 通过执行build触发

同时执行复制和删除

task deleteSdk(type: org.gradle.api.tasks.Delete) {delete('build/intermediates/classes/release')
}task publishSDK2Demo3() {copy {//不根据根目录定位,容易找不到路径from("${project.rootDir}/mergeincludearr/build/outputs/aar/mergeincludearr-release.aar")into("${publishDir}/sdklib/libs")}delete("d:/1.txt")}
task publishSDK2Demo(type: org.gradle.api.tasks.Copy) {copy {//不根据根目录定位,容易找不到路径from("${project.rootDir}/mergeincludearr/build/outputs/aar/mergeincludearr-release.aar")into("${publishDir}/sdklib/libs")}delete("${publishDir}/app/build")delete("${publishDir}/.gradle")delete("${publishDir}/sdk/build")delete("${publishDir}/app/app.iml")delete("${publishDir}/sdklib/sdklib.iml")print "删除缓存完成 ${publishDir}"//    copy {
//        print "\n copy被执行!"
//        from 'build/outputs/arr/mergeincludearr-release.aar'
//        into "${publishDir}/sdklib/libs"
//
//
//        rename {
//            'xsdk.arr'
//        }
//    }}
task copy(type: Copy) {
// end::no-description[]description 'Copies the resource directory to the target directory.'
// tag::no-description[]from 'resources'into 'target'include('**/*.txt', '**/*.xml', '**/*.properties')
}

表示从resources复制以txt, xml .properties结尾的文件到target目录
依赖的另外一种追加方式

依赖到assembleRelease的办法
如果直接在build.gradle里面写xxx.dependsOn(assembleRelease)就会报错,could not get unknown property 'assembleDebug' for project
方法1:

tasks.whenTaskAdded { task ->
//    print " task ${task.name} add \n"if (task.name == 'assemble') {
//    if (task.name == 'assembleRelease') {task.dependsOn 'deleteDemoTask'}
}

方法2:

task A_BuildDex(dependsOn: "assembleDebug") {
//    F:\src\git_project\fuck\testapp\build\intermediates\dex\debug\mergeDexDebug\outdoLast{println("copy debug...")copy {
//        from "build\\intermediates\\external_libs_dex\\debug\\mergeExtDexDebug\\out"//纯模块里面再引用的dex 显然不符合需求from "build\\intermediates\\dex\\debug\\mergeDexDebug\\out"into "../assets/"}}
}

方法3

task renameApk(type:Copy){//somethingdependsOn 'assembleRelease'
}

无法依赖到build的错误

xxx

这是bug,我直接不依赖到build依赖到assembleDebug了。


http://www.taodudu.cc/news/show-2177298.html

相关文章:

  • Spring中的ref和depends-on区别
  • docker-compose中解决depends_on无效问题
  • @DependsOn或depends-on配置的使用
  • Depends
  • 入门注解@DependsOn
  • @DependsOn
  • depends的使用教程
  • DependsOn注解
  • FastAPI基础:Depends怎么用?
  • depends-on
  • SpringBoot - @DependsOn注解详解
  • Spring中@DependsOn注解的作用及实现原理解析
  • Spring中的depends-on
  • depends工具查看exe和dll依赖关系
  • Depends简介与使用说明
  • depends.exe 使用说明
  • STM32用热敏电阻测温
  • 基于单片机的热敏电阻测温设计
  • 单片机实验13:用热敏电阻和ADC实现测量温度
  • 热敏电阻(NTC)的作用
  • 32 usb电路_【干货】快速创建基于热敏电阻的精确温度检测电路
  • 热敏电阻制作温度传感器的c语言,NTC热敏电阻温度测量和控制系统.doc
  • 热敏电阻制作温度传感器的c语言,课题一NTC热敏电阻温度测量和控制系统.doc
  • 用于温度测量的热敏电阻
  • c语言ntc程序,NTC热敏电阻程序.doc
  • matlab拟合热敏电阻温度特性曲线,深度解析NTC热敏电阻进行对数分段曲线拟合的技术分析...
  • 【NTC 热敏电阻与 Arduino 读取温度】
  • 热敏电阻温度采集简述
  • 热敏电阻 电桥计算
  • matlab已知热敏电阻数据,Matlab在热敏电阻特性测量实验中的应用

gradle dependsOn等记录玩转。相关推荐

  1. Gradle打包命令记录

    Gradle打包命令记录 第一种方式: gradle build 执行后在在build/lib下生成war包 第二种方式: gradle clean gradle --refresh-dependen ...

  2. gradle exclude_Gradle学习记录020 java工程的测试 part1

    详细学习如何用Gradle测试java工程.第二部分.该学习记录基于Gradle官方网站资料.本篇参考链接如下: https://docs.gradle.org/current/userguide/j ...

  3. 破解Gradle(六) Gradle Plugin技术及玩转transform

    如果你想在编译期间搞事情,如常用的有无痕埋点,方法耗时统计和组件通信中自动注入等等,就要来学习字节码插桩的技术.而所谓字节码插桩技术其实就是修改已经编译好的class文件,在里面添加自己的字节码,然后 ...

  4. Android配置build.gradle解锁更高逼格玩法(多版本共存、分服务器打包等)

    背景 在日常的AndroidAPP开发过程中,常常需要在同一设备上安装同一APP的多个版本.如在没有测试设备的情况下需要使用到个人设备进行测试,而该设备已安装正式版本且有大量缓存数据.applicat ...

  5. 软件工程课程设计团队项目总结与项目报告

    1.      团队成员自评 漆艺: 身为团队的PM项目经理,开始的时候自己还不知道该做些什么,因为自己项目经验不足,团队把这个重要的角色交给我,那就有责任和义务把团队项目做好,并且发挥各个成员的作用 ...

  6. 软件工程课程设计项目总结与项目报告

    软件工程课程设计团队项目总结与项目报告 团队成员自评 漆艺: 身为团队的PM项目经理,开始的时候自己还不知道该做些什么,因为自己项目经验不足,团队把这个重要的角色交给我,那就有责任和义务把团队项目做好 ...

  7. 疯狂来往android版,疯狂来往下载app

    介绍(2020-04-05) 你演我猜聚会社交 特色卖点:粉笔画风格,制作精良的游戏界面:多个海量题库主题,任你任意选择:视频记录爆笑瞬间,分享到社交网络. 独家内容:<爸爸回来了>.&l ...

  8. Unity Shader-Ambient Occlusion环境光遮蔽(AO贴图,GPU AO贴图烘焙,SSAO,HBAO)

    前言 十一放假很开心,正好赶上观望了了许久的<尼尔·机械纪元>打折啦.窝在家里搞了三天三夜,终于E结局通关啦!!!真的好久没玩过这么好玩的游戏了,于是乎我的废话应该会多不少,毕竟,写blo ...

  9. TotalControl之手机录屏神器

    很多人不知道Total Control(以下简称TC)的录屏功能,今天给大家介绍一下,在TC多种多样的屏幕功能中,"手机录屏"是非常实用的一个功能,用户可以通过该功能,进行手机视频 ...

  10. 这40款优质APP大合集,总有一个适合你!

    1.X浏览器 可能是目前最快的一款浏览器了,X源自于单词 eXtreme (极致的),同时"X"也是数学方程中的未知数,预示着未知和变化: 2.八戒助手 这款广告去除软件可谓是当年 ...

最新文章

  1. 【数据分析】干货!一文教会你 Scrapy 爬虫框架的基本使用
  2. ajax 高并发请求,理解node.js处理高并发请求原理
  3. 【2016年第6期】面向国际的生命组学大数据管理体系建设
  4. 前端性能优化学习(慕课网)笔记
  5. 【搬运】各种知乎段子
  6. 如何在软件里显示编译时间
  7. 微信小程序模板平台_小程序模板免费使用_小程序界面模板
  8. oracle:根据出生日期计算年龄
  9. Unknown label type: ‘continuous
  10. NOC2021年测试卷3
  11. apache c语言源码,Apache模块开发/用C语言扩展apache(2:APR编程介绍)
  12. 在未提供官方驱动的Windows平板上安装Win10且完美驱动的解决方案
  13. 《安富莱嵌入式周报》第268期:2022.05.30--2022.06.05
  14. C++链接器工具错误:LNK2001, LNK2019
  15. 线性规划与非线性规划的求解
  16. 灵狐剪辑,ai混剪,tiktok批量去重工具功能介绍
  17. 我不看好中移动充当4G急先锋
  18. mothur trim.seqs 去除PCR引物
  19. Prolific USB-to-Serial Comm Port驱动
  20. 17173游戏网-王者荣耀代码优化分析(含内链)(更多内容请访问http://www.eduaskx6.com/)...

热门文章

  1. 郝斌 mysql_郝斌–SQL Server2005学习笔记
  2. 微带滤波器摘要_微带线带通滤波器设计
  3. RS485接口上的PTC
  4. 在renderman中使用raytrace 计算fur的项目
  5. 主动轮廓线模型Snake模型简介amp;openCV中cvSnakeImage()函数代码分析
  6. 第 1 章 程序员考试简介
  7. 计算机网络生活应用,浅谈计算机网络在生活中的应用
  8. chrome扩展程序安装_如何在Windows上删除“由企业策略安装”的Chrome扩展程序
  9. 反弹c语言作业,C语言实现反弹球游戏
  10. 华侨大学计算机等级,全国计算机等级考试报名系统-华侨大学.doc