Android Studio gradle打包可执行jar包,含第三方jar包

2,542 阅读1分钟

android studio版本是3.5,gradle版本是3.5.0

  1. 前提:公司之前有好几个eclipse写的jar工具包,随着项目升级,有时候也是需要修改更新这些jar包的。每次打开eclipse又慢又卡,而且同时打开eclipse和AS有时还会导致adb崩溃。作为一个Android开发的我再也不想打开那个古老的eclipse了,把这些java项目移植到Android studio上并且也能像eclipse一样导出可执行jar是很有必要的。
  2. 新建 Java Module这个就不多说了,我这里的Module名是Collection,测试方便只添加一个源文件文件名为Function.java
import org.jdom2.Element;
public class Function {

    public static void main(String[] args) {

        Element root = new Element("GREETING");
        root.addContent("this is content");
        System.out.println("Element"+root.getName());
        System.out.println("Element"+root.getContent());
    }
}

使用了第三方jar包jdom-2.0.6.jar

  1. 现在要将这个工程导出为可执行jar:在 Java Module的gradle里面新建一个task
def zipFile = file('build/libs/Collection.jar')//指定build生成的jar的路径
task makeJar(type: Jar) {//生成不含dex的jar
    archiveName = 'CollectionMer.jar'
    //如果之前存在,则先删除
    delete 'build/libs/CollectionMer.jar'
    //设置拷贝的文件
    from zipTree(zipFile)
    from (project.zipTree("libs/jdom-2.0.6.jar"))//将jdom-2.0.6.jar作为源码添加到CollectionMer.jar中
//    from fileTree(dir: 'src/main', includes: ['assets/**'])//指定添加assets目录下的所有文件
    manifest{ attributes 'Main-Class': 'com.modou.adk.collection.Function' }//指定入口类,不指定的话运行的时候会提示 错误: 找不到或无法加载主类
}
makeJar.dependsOn(build)//执行makeJar的时候会在之前执行build

执行makeJar就可以在目录build/libs/得到生成好的CollectionMer.jar
4. 生成可执行jar完毕,运行可执行jarjava -jar CollectionMer.jar,看到输出结果,成功!!