AndroidStudio Java Module打包成Jar(包含依赖文件)

前言
利用AS开发Java程序真是作死

问题

利用AS开发Java程序后,希望打包成一个jar,同时能包含依赖文件。

into(‘lib’){from }

以上做法并没有用,尝试了很多姿势,一直无法将依赖包打进jar中。

Google到fatjar,坑爹的是只有在Intellij IDEA才能用

解决

shadowjar 解决

官方User Guide

build.gradle如下:

apply plugin: 'java-library'
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'java'

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
    	//5.0.0 需要gradle 5.0+ 才可构建
        classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.0'
    }
}

shadowJar {
    manifest{
    	//main 函数地址类
        attributes 'Main-Class': 'demo'
    }
    baseName = 'demo'
    classifier = null
    version = 'V1.0'
    dependencies {
    	//需要依赖的第三方lib
        include(dependency('commons-cli:commons-cli:1.4'))
        //多个
        include(dependency('com.alibaba:fastjson:1.2.58'))
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'commons-cli:commons-cli:1.4'
}

compileJava {
    sourceCompatibility = "8"
    targetCompatibility = "8"
}

然后 Gradle–>Tasks–>shadow–>shadowJar 双击即可在 build/libs下生成jar文件

你可能感兴趣的:(问题解决)