Gradle打jar包-包含所有依赖
Gradle打jar包,包含所有依赖
2021-06-12 Java dependence, fat-jar, gradle, jar, maven 发表评论
前言
最近被gradle折腾的欲仙欲死。
gradle想把所有依赖打进jar包主要有两种方式:一种是重写jar动作,一种是用第三方插件。
为了装x,我一直都是用的第一种方式,结果出了问题解决不了,为了不影响进度,只能先用第三方了。
重写jar动作
主要是into这一句,可以参照gradle的api文档。里面专门讲了这一块。
这种方式生成的jar包,是把所有的依赖全部打进了lib中。我一直在用这种方式打包。
然后在用spark-submit提交任务的时候,仍然会出现缺包的问题,比如我在运行spark-streaming程序的时候,就是死活找不到KafkaUtil$。但是相关的jar包的确是打进去了,百思不得其解。
所以就用了下面这种方式。
jar {
manifest { //incubating版本,以后版本可能会改API
attributes("Main-Class": "com.KafkaWordCount",
"Implementation-Title": "Gradle")
}
into('lib') {
from configurations.runtime
}
}
shadow
贴了一整个我的测试程序。
这种方式在使用spark提交任务的时候就OK了。
plugins {
id 'com.github.johnrengelman.shadow' version '1.2.3'
id 'java'
id 'scala'
id 'idea'
id 'application'
}
group 'com.lagou'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.7
targetCompatibility = 1.7
mainClassName="com.KafkaWordCount"
repositories {
mavenLocal() //使用maven本地库
mavenCentral()
}
ext{
scala_version = '2.10.6'
kafka_version = '0.8.2.2'
spark_version = '1.6.0'
}
//使用shadow插件打包,代替jar功能。
jar {
manifest { //incubating版本,以后版本可能会改API
attributes("Main-Class": "com.KafkaWordCount",
"Implementation-Title": "Gradle")
}
}
dependencies {
//scala
compile "org.scala-lang:scala-library:$scala_version"
compile "org.scala-lang:scala-compiler:$scala_version"
//spark
compile "org.apache.spark:spark-core_2.10:$spark_version"
compile "org.apache.spark:spark-streaming_2.10:$spark_version"
compile "org.apache.spark:spark-streaming-kafka_2.10:$spark_version"
//kafka
compile "org.apache.kafka:kafka_2.10:$kafka_version"
compile "org.apache.kafka:kafka-clients:$kafka_version"
//junit
testCompile group: 'junit', name: 'junit', version: '4.11'
}
上一篇: Eclipse打包之FatJar插件
下一篇: spring加载jar包中多个配置文件
发表评论邮箱地址不会被公开。 必填项已用*标注
评论 *
昵称 *
邮箱 *
网站
近期评论
- Jodie发表在《java的%d和%f 是什么意思》
- JVM性能优化系列-(1) Java内存区域 安全专题发表在《基于JDK1.8 分析运行时常量池、字符串常量池、各种常量池》
- dev发表在《Kotlin 打包 Jar》
- Ligz发表在《Spring Boot上传文件过大处理方式(基于Spring Boot2.0)》
- wandi发表在《虚拟机漫谈(Lua、Java、C#)》
- gary发表在《深入剖析tomcat之servlet容器》
- AIU发表在《自定义ClassLoader,用于加载用户JAR包》
Theme: Maizi. Powered by WordPress. 粤ICP备17138695号×
拖拽到此处
图片将完成下载