android library 打包jar,android library 另一种gradle打包Jar的方式

本文介绍了在Android Library模块中使用Gradle打包Jar的两种方式。第一种方式是在`android.libraryVariants.all`块中创建并配置Jar任务,指定class文件位置和依赖的jar包,并定义jar名称和manifest信息。第二种方式是通过创建一个`makeJar`任务,设置打包目录,从特定路径的libs目录中包含jar文件,并排除某些特定类。两种方法都需要定义打包任务、设置class来源、包含依赖的jar及指定输出路径。主要区别在于执行打包任务的触发条件不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在library的module中

//android 变种配置, 在build的时候会回调

android.libraryVariants.all { variant ->

def name = variant.buildType.name

//debug 和release

if (name.equals(com.android.builder.core.BuilderConstants.DEBUG)) {

return;

}

//创建一个打Jar包任务

def task = project.tasks.create "makeJar1", Jar

//指定需要打包的class文件位置

task.from variant.javaCompile.destinationDir

println(">>>>>>>>>> " + variant.javaCompile.destinationDir)// F:\Work\TeddyWork\transactionsdk\app\build\intermediates\classes\release

//依赖的jar包

task.from configurations.compile.findAll {

it.getName() != 'android.jar' && !it.getName().startsWith('junit') && !it.getName().startsWith('hamcrest')

}.collect {

it.isDirectory() ? it : zipTree(it)

}

task.baseName "smssdk_${buildInfo.version}"//定义jar的名字

task.manifest {//定义manifest信息

attributes 'Created-By': "smssdk_${buildInfo.version}_${buildInfo.vcs_version}_${buildInfo.build_time}"

}

//Jar任务是一个Zip任务,如果想指定输出路径, 可以如此配置

task.destinationDir rootProject.buildDir

}

其实和下面的打包方式是一样的

task makeJar(type: Jar, dependsOn: "assembleRelease") {

doFirst {

delete fileTree(BUILD_LIBS_PATH) {

include JAR_NAME_PREFIX + "**.jar"

}

}

archiveName = 'kkcoresdk.jar'

from('build/intermediates/classes/release')

from(project.zipTree("libs/app_kookong_data.jar"))

from(project.zipTree("libs/app_service.jar"))

from(project.zipTree("libs/xutils.jar"))

destinationDir = file('build/libs')

// exclude('com/kookong/sdk/BuildConfig.class')

exclude('com/kookong/sdk/BuildConfig\$*.class')

exclude('**/R.class')

exclude('**/R\$*.class')

}

都是:

1.定义打包jar的task

2.设置打包class的目录

3.编译所依赖的jar

4.指定输出路径

区别

第一个 通过gradle build即可生成jar

第二个 需要先执行build再执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值