apply plugin: 'com.android.library'
/*
* 说明:
*
* Android Studio:
* 1.make Project编译aar包
* 2.aar路径在 build/outputs/aar/
*
* Eclipse:
*
* 1.终端输入gradlew makejar编译jar
* 2.jar路径在build/libs/
*
* */
def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}
android {
compileSdkVersion 22
defaultConfig {
minSdkVersion 15
targetSdkVersion 22
versionCode 1
//versionName "1.0"
versionName "net-idcard-sdk-" + releaseTime()
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
lintOptions {
abortOnError false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
libraryVariants.all{ variant->
variant.outputs.all{
def filename="${defaultConfig.versionName}.aar"
outputFileName=filename
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:22.2.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
task copyLibs(type: Copy) {
from configurations.compile
into 'libs'
}
task clearJar(type: Delete) {
delete 'build/libs/cwsdk.jar'
delete 'libs/cwsdk.jar'
}
def zipFile = file('build/intermediates/bundles/release/classes.jar')
//打包任务
task makeJar(type: org.gradle.api.tasks.bundling.Jar) {
from zipTree(zipFile)
//from fileTree(dir: 'src/main',includes: ['assets/**', 'jniLibs/**','java/**'],excludes: [''])//将assets目录打入jar包
//指定生成的jar名
baseName "${android.defaultConfig.versionName}" //从哪里打包class文件
//from('build/intermediates/jniLibs/release/')
//打包到jar后的目录结构
into('/')
//去掉不需要打包的目录和文件
exclude('BuildConfig.class', 'R.class')
//去掉R$开头的文件
exclude { it.name.startsWith('R$'); }
}
// ---------- 编译并发布AAR (删除旧AAR,编译新AAR,拷贝新AAR至同一目录) ----------
task aarRelease(type: Copy) {
// 任务开始
println "----------> AAR Release Task Start <----------"
// 工程根路径
def rootPath = rootProject.rootDir.path
// AAR所在的编译路径
def buildPath = "/build/outputs/aar"
// AAR输出路径
def aarOutPath = rootPath + "/app/libs/"
//
def aarPath = rootPath +"/netnfcreadidcardlib"+ buildPath + "/${android.defaultConfig.versionName}"+".aar"
// 封装数组
def modulePaths = [aarPath]
// 删除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 <----------"
}
makeJar.dependsOn(clearJar, build,aarRelease)
Gradle Library打包
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、创建并且运行angular项目 二、创建angular library 三、在angular.json 文件中...
- Android Studio打包时,默认会将依赖包一起打包 因为Unity在打包时,会将自带的那个classes....
- Jenkins或者mac本地 在使用gradle命令进行构建打包失败,提示“Task‘gradle’ not fo...
- 1.gradle 3.1 后build module后在build文件找不到jar文件的路径,只能找到aar的文件...