如何在AndroidStudio中导出Jar包,并且自定义Exclude文件

作为一个从Eclipse过渡到Android Studio的Android开发,我相信每个人或多或少都有这么一个疑问,Android Studio没什么没有直接export Jar包的功能。在Eclipse中是如此的简便,但作为Ecplise的替代品Android Studio确没有这个功能。网上有很多Gradle的脚本用来执行导出Jar的功能。目前最流行的是

task clearJar(type: Delete) {
    delete 'build/libs/yutils.jar'
}

task makeJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('build/libs/')
    include('classes.jar')
    rename ('classes.jar', 'yutils.jar')
}

makeJar.dependsOn(clearJar, build)

直接把build/intermediates/bundles/release/路径下的classes.jar换个名字换个路径导出。但是在classes.jar中有BuildConfig和R文件是我所不希望存在的,并且也没有META-INF/MAINFEST.MF清单文件存放一些我需用的信息

所以我们可以用已编译完的class文件自己压缩成jar包,可以根据需求个性定制

//生成jar包
task makeJar(type: org.gradle.api.tasks.bundling.Jar) {
    delete 'build/libs/pluginsdk.jar'

    baseName 'pluginsdk'

    from('build/intermediates/classes/release/')
    //千万注意,这里 的into空着就行,不然在你的jar包中会多一层目录
    into('')
    //不想要的文件统统exclude
    exclude('**/R.class')

    exclude('**/BuildConfig.class')

    exclude { it.name.startsWith('R$'); }

}

如果有exclude需求的同学可以试试我提供的这种方法

你可能感兴趣的:(如何在AndroidStudio中导出Jar包,并且自定义Exclude文件)