AndroidStudio 和Eclipse将资源文件打包成jar包方法是不一样的,AS不像Eclipse那么直接!基本上都是在build.gradle 文件中新建一个task.
网上有很多的方法,下面介绍一种插件,直接打包OK!
插件使用
既然标题说了这是一个通用的打包jar插件,那么一些基本特性,如过滤包名,指定包名等是必须要支持的,目前该插件支持特性如下:
- 按需打包jar:
全项目打包jar
指定输出Jar包的包名路径列表
过滤指定包名路径列表
过滤指定class
过滤指定jar
支持混淆打包jar
支持applymapping
具体使用说明
第一步,在project的:build.gradle文件中 引入依赖
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
classpath 'com.adison.gradleplugin:jar:1.0.1'
}
第二步,应用插件:
apply plugin: 'jar-gradle-plugin'
BuildJar{
//输出目录
outputFileDir= project.buildDir.path+"/jar"
//输出原始jar包名
outputFileName="scales.jar"
//输出混淆jar包名
outputProguardFileName="test_proguard.jar"
//混淆配置
proguardConfigFile="proguard-rules.pro"
//是否需要默认的混淆配置proguard-android.txt
needDefaultProguard=true
applyMappingFile="originMapping/mapping.txt"
//需要输出jar的包名列表,当此参数为空时,则默认全项目输出,支持多包,如 includePackage=['com/adison/testjarplugin/include','com/adison/testjarplugin/include1'...]
includePackage=['com/quanshang/listener','com/quanshang/scaleport','com/quanshang/scales/api']
//不需要输出jar的jar包列表,如['baidu.jar','baidu1.jar'...]
excludeJar=[]
//不需要输出jar的类名列表,如['baidu.calss','baidu1.class'...]
excludeClass=['com/adison/testjarplugin/TestExcude.class']
//不需要输出jar的包名列表,如 excludePackage=['com/adison/testjarplugin/exclude','com/adison/testjarplugin/exclude1'...]
// excludePackage=['com/adison/testjarplugin/exclude']
}
第三步,使用:
- 打包普通jar
./gradlew buildJar
- 打包混淆jar
./gradlew buildProguardJar