1.将app依赖一个moudle。
2.运行app。这是在build/intermediates/bundles/debug or release/目录下回看到一个classer.jar (这个就是生成的jar)
3.在moudle 的build.gradle中添加如下代码,下面这些代码是将原本的classer.jar转成自定义的jar
apply plugin: 'com.android.library'
android {
compileSdkVersion 27
defaultConfig {
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
postprocessing {
removeUnusedCode false //是否删除未使用的代码
removeUnusedResources false //是否清除未使用的资源
obfuscate false //是否混淆
optimizeCode false //是否优化
proguardFile 'proguard-rules.pro'
}
}
}
lintOptions{
abortOnError false
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
// implementation 'com.android.support:appcompat-v7:27.1.1'
api files('libs/netty-all-4.1.26.Final.jar')
implementation project(':utillibrary')
}
//-------------------------------------------打jar包--------------------------------------------//
//自定义打jar包,可以将第三方jar包打入要生成的jar包,同时打了aar,修改了jar、aar的名字
//重写gradle的Jar闭包
task makeJar(type: Jar ) {
def name = project.name
def fileName = name+"-${android.defaultConfig.versionName}-${rootProject.releaseTime()}"
archivesBaseName = fileName
//编译完工程后module中的Java文件已经生成了包含class 的classes.jar包
from(project.zipTree('build/intermediates/packaged-classes/release/classes.jar'))
//将第三方jar包打包到将要打包的jar包中
from(project.zipTree("libs/netty-all-4.1.26.Final.jar"))
// from fileTree(dir: 'src/main',includes: ['assets/**'])//将assets目录打入jar包
destinationDir = file('build/libs')
}
makeJar.dependsOn(build)
//-------------------------------------------修改aar包名--------------------------------------------//
task modefyAarName(type: Copy) {
def name = project.name
def fileName = name+"-${android.defaultConfig.versionName}-${rootProject.releaseTime()}.aar"
from("build/outputs/aar/"+name+"-release.aar")
into("build/libs")
rename(name+"-release.aar", fileName)
}
//modefyAarName.dependsOn( build)
//-------------------------------------------修改jar包名--------------------------------------------//
task modefyJarName(type: Copy) {
def name = project.name
def fileName = name+"-${android.defaultConfig.versionName}-${releaseTime()}.aar"
from("build/intermediates/packaged-classes/release/classes.jar")//gradle4.6以后的路径
from('build/intermediates/bundles/release/classes.jar') //gradle4.6以前的路径
into("build/libs")
rename(name+"-release.aar", fileName)
}
//modefyJarName.dependsOn( build)
4.重新sync now一下。
5.点击android studio右边的gradle,然后找到自己的module名字点击进去,然后点击Tasks后找到other点击计入,找到makeJAr 双击,
6.jar包生成后你会在build/libs/目录下找到。例如Sdk-1.0-v1.1-2018.07.18.jar