关键词:task makeJar(type: Jar)打包源码
有时候我们需要把某些子工程打包成jar。或者把某些包某些功能打包成jar。
我居然没有搜索到在AS下如何把源代码打包到JAR中去。我在这儿分享一下把源码打包打jar。
项目打包成jar请跳转到这儿:Android Studio 如何打JAR包
1.配置子工程的build.gradle
打包源码会让jar包变得更大,如果不希望别人看到你的源码你可以把上图画箭头的三行删去。
2.在Terminal中运行gradlew makeJar
完成!!
现在可以愉快的去build/libs文件夹复制自己的JAR包了。
我在这儿上一下完整的build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 27
defaultConfig {
minSdkVersion 14
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
//build release 版本时开启lint检测
checkReleaseBuilds true
//lint 遇到error时继续构建,true为不继续构建(默认),false为继续构建
abortOnError true
}
//导出JAR包的相关配置,打包jar请在Terminal中运行gradlew makeJar,检查使用gradle lint
task makeJar(type: Jar) {
//删除之前的jar
delete 'yutils1.1.jar'
//设置拷贝的文件
from file('build/intermediates/classes/release')
from file('src/main/java/')
//打进jar包后的文件目录
destinationDir = file('build/libs')
//打进jar包后的文件名
archiveName = 'yutils1.1.jar'
//指定打包的文件
include "com/yujing/**/*.class"
include "com/yujing/**/**/*.class"
include "com/yujing/**/*.java"
include "com/yujing/**/**/*.java"
//过滤不需要的class
exclude "**/**/BuildConfig.class"
exclude "**/**/BuildConfig\$*.class"
exclude "**/R.class"
exclude "**/R\$*.class"
exclude "**/test/"
//exclude "**/\$*Test.class"
//exclude('test/','R.class')
}
makeJar.dependsOn(build)
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.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'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
// 用到的包如下
implementation 'com.android.support:recyclerview-v7:27.1.1'
// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
}
如果觉得能帮助到你或者可能帮助到你,希望你能在下面给个评价。
如果觉得哪写地方需要改进请告诉我,谢谢。技术就是要大家分享才快乐。