内容简介:(上面内容写的有些繁琐与重复,灵活性相对差些,如果需要外部指定对应版本与目录,以及通过git灵活打对应需求的版本则就略差一些。)####
A build.gradle全局常量:
-
//根路径 def ROOT_PATH = rootProject.rootDir.path def GROUP = "com.genialsir.mobileads" def MOB_SDK_VERSION_NAME = "1.1.2" 复制代码
B 在当前库项目的build.gradle文件中android{}中配置如下:
-
//自定义aar名称 android.libraryVariants.all { variant -> variant.outputs.all { def fileName = GROUP + "." + MOB_SDK_VERSION_NAME + ".aar" outputFileName = fileName } } 复制代码
C 借助命令生成arr到指定的目录:
-
使用gradle -b **(代表当前Project或Module目录名)/build.gradle aarRelease 复制代码
在对应build.gradle文件中配置如下:
- 生成所需要的目录
-
//生成对应目录 task makeLibDir() { def outputPath = ROOT_PATH + '/aar_release' //脚本指定路径 if(project.hasProperty('OUT_PUT_DIR_PATH')){ outputPath = "${OUT_PUT_DIR_PATH}" } //创建aar所输出的目录 createDir(outputPath) } 复制代码
- 代码参数块
-
def createDir = { path -> File dir = new File(path) if (!dir.exists()) { dir.mkdirs() } println "Generate the corresponding directory path is" + dir.toString() } 复制代码
- 拷贝AAR
-
task copyAAR(type: Copy) { println "----------> ARR copy start <-----------" def buildPath = ROOT_PATH + '/containerad/build/outputs/aar' //AAR所在的编译路径 from buildPath //AAR所拷贝的目录 def outputPath = ROOT_PATH + '/aar_release' println "outputPath = " + outputPath into outputPath println "----------> ARR copy succeeded <-----------" } 复制代码
- 执行copyAAR
-
tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn(copyAAR) } 复制代码
- 使用命令执行**(gradle -b 目录名/build.gradle aarRelease)**并发布AAR
-
task aarRelease(type: Copy) { //任务开始 println "----------> AAR Release Task Start <----------" //AAR所在的编译路径 def buildPath = ROOT_PATH + '/containerad/build/outputs/aar' //AAR输出路径 def aarOutPath = ROOT_PATH + "/aar_release" //广告的SDK def adPath = buildPath + GROUP + "." + MOB_SDK_VERSION_NAME + ".aar" //封装数组 def modulePaths = [adPath] //删除AAR输出目录 println "Delete -> " + aarOutPath delete aarOutPath //循环删除各个AAR编译目录 for (path in modulePaths) { println "Delete -> " + path delete path } //执行编译AAR脚本(原生脚本) dependsOn 'assembleRelease' //循环拷贝AAR到ARR输出目录 for (path in modulePaths) { //显示开始拷贝 println "-> Start of current copy <-" //当前目录 println "From : " + path from path //拷贝至 aarOutPath println "Into : " + aarOutPath into aarOutPath; //显示当前拷贝结束 println "-> End of current copy <-" } //任务结束 println "----------> AAR Release Task End <----------" } 复制代码
(上面内容写的有些繁琐与重复,灵活性相对差些,如果需要外部指定对应版本与目录,以及通过git灵活打对应需求的版本则就略差一些。)
#### 先来张最近奥迪漏油事件皮一波,免费打打广告
好的,开始进入正题,首先灵活指定版本号,通过协定OUT_PUT_AAR_VERSION_SUFFIX来指定所需版本。
//自定义aar名称
android.libraryVariants.all {
variant ->
variant.outputs.all {
def fileName
if (!project.hasProperty('OUT_PUT_AAR_VERSION_SUFFIX')) {
fileName = GROUP + "." + MOB_SDK_VERSION_NAME + ".aar"
}else{
fileName = GROUP + "." + "${OUT_PUT_AAR_VERSION_SUFFIX}.aar"
}
outputFileName = fileName
}
}
复制代码
指定对应的生成目录以及版本号
使用默认路径命令执行(gradle -b containerad/build.gradle aarRelease) 脚本指定版本号与对应目录(gradle assemble -P OUT_PUT_AAR_VERSION_SUFFIX=1.1.2 -P OUT_PUT_DIR_PATH=H:\AndroidProject\ADPlugIn\OnlyLadyAD\ad_release_path aarRelease) 复制代码
-
通过协定好的OUT_PUT_DIR_PATH与OUT_PUT_AAR_VERSION_SUFFIX来控制版本号与路径。
task aarRelease(type: Copy) { //任务开始 println "----------> AAR Release Task Start <----------" //执行编译AAR脚本(原生脚本) dependsOn 'assembleRelease' //AAR所在的编译路径 def buildPath = ROOT_PATH + '/containerad/build/outputs/aar/' //AAR输出默认路径 def aarOutPath = ROOT_PATH + '/aar_release' //脚本指定路径 if(project.hasProperty('OUT_PUT_DIR_PATH')){ aarOutPath = "${OUT_PUT_DIR_PATH}" } //广告的SDK def adPath if (!project.hasProperty('OUT_PUT_AAR_VERSION_SUFFIX')) { //默认版本 adPath = buildPath + GROUP + "." + MOB_SDK_VERSION_NAME + ".aar" }else{ //脚本指定版本 adPath = buildPath + GROUP + "." + "${OUT_PUT_AAR_VERSION_SUFFIX}.aar" } //封装数组 def modulePaths = [adPath] //当前AAR输出目录 println "The current aar output directory is " + aarOutPath delete aarOutPath //循环删除已存在的aar for (path in modulePaths) { println "Delete ---> " + path delete path } //循环拷贝AAR到ARR输出目录 for (path in modulePaths) { //显示开始拷贝 println "-> Start of current copy <-" //当前目录 println "From : " + path from path //拷贝至 aarOutPath println "Into : " + aarOutPath into aarOutPath; //显示当前拷贝结束 println "-> End of current copy <-" } dependsOn 'assembleRelease' //任务结束 println "----------> AAR Release Task End <----------" } 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 爱发电赞助名单生成脚本
- 分区表改造:脚本模板生成
- 分区表改造:脚本模板生成
- 《干货分享》--分区表改造(脚本模板生成)
- LoadRunner从录制脚本到负载测试再到生成报告
- [小清新] 一段 node 脚本生成风格优雅的 Directory Tree
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Introduction to Linear Optimization
Dimitris Bertsimas、John N. Tsitsiklis / Athena Scientific / 1997-02-01 / USD 89.00
"The true merit of this book, however, lies in its pedagogical qualities which are so impressive..." "Throughout the book, the authors make serious efforts to give geometric and intuitive explanations......一起来看看 《Introduction to Linear Optimization》 这本书的介绍吧!