Android Studio 打包JAR及其源码

16 篇文章 3 订阅
8 篇文章 0 订阅

关键词: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'
}

如果觉得能帮助到你或者可能帮助到你,希望你能在下面给个评价。
如果觉得哪写地方需要改进请告诉我,谢谢。技术就是要大家分享才快乐。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值