正常情况下,gradle构建的jar包是不包含依赖的,只包含项目源码。
可是有些情况下我们希望JAR包中也包含相关依赖,譬如说向SPARK集群提交作业的时候,运行JAVA命令的时候。
这篇文件介绍一种方便的构建assemble jar的方法
apply plugin :'java'
apply plugin :'scala'
apply plugin: 'com.github.johnrengelman.shadow'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4'
}
}
repositories {
mavenCentral()
}
shadowJar {
baseName = 'spark-job'
classifier = null
version = null
dependencies {
include(dependency('org.apache.flume:flume-ng-core:1.7.0'))
include(dependency('org.apache.spark:spark-streaming-kafka-0-10_2.11:2.0.2'))
include(dependency('org.apache.flume:flume-ng-sdk:1.7.0'))
include(dependency('org.apache.kafka:kafka-clients:0.10.1.0'))
}
}
dependencies {
compile group: &#