前言
利用AS开发Java程序真是作死
问题
利用AS开发Java程序后,希望打包成一个jar,同时能包含依赖文件。
into(‘lib’){from }
以上做法并没有用,尝试了很多姿势,一直无法将依赖包打进jar中。
Google到fatjar,坑爹的是只有在Intellij IDEA才能用
解决
shadowjar 解决
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文件