From 5e4f55a09c7f22aaf02ef75542c5a11af321627f Mon Sep 17 00:00:00 2001 From: luoxiang <2806718453@qq.com> Date: Mon, 20 May 2019 23:49:01 +0800 Subject: [PATCH] modify --- notes/大数据应用常用打包方式.md | 32 ++++++++++++++++++---- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/notes/大数据应用常用打包方式.md b/notes/大数据应用常用打包方式.md index e583370..c9133a0 100644 --- a/notes/大数据应用常用打包方式.md +++ b/notes/大数据应用常用打包方式.md @@ -1,12 +1,24 @@ # 大数据应用常用打包方式 + + + ## 一、简介 -在提交大数据作业到集群中运行时,通常都需要先将项目打成Jar包。Java项目通常都采用Maven进行构建,常用的打包方式有以下三种: +在提交大数据作业到集群中运行时,通常都需要先将项目打成Jar包。Java项目通常都采用Maven进行构建,Maven提供的常用打包方式及插件有以下四种: -- 第一种:不加任何插件,直接使用mvn package打包; -- 第二种:使用maven-assembly-plugin插件进行打包; -- 第三种:使用maven-shade-plugin插件进行打包。 +- 不加任何插件,直接使用mvn package打包; +- 使用maven-assembly-plugin插件; +- 使用maven-shade-plugin插件; +- 使用maven-jar-plugin和maven-dependency-plugin插件; 以下分别进行详细的说明。 @@ -104,7 +116,7 @@ assembly.xml文件内容如下: ## 四、maven-shade-plugin插件 -`maven-shade-plugin`比`maven-assembly-plugin`功能更丰富,比如你的工程依赖很多的JAR包,而被依赖的JAR又会依赖其他的JAR包,这样,当工程中依赖到不同的版本的 JAR时,并且JAR中具有相同名称的资源文件时,shade插件会尝试将所有资源文件打包在一起时,而不是和assembly一样执行覆盖操作。 +`maven-shade-plugin`比`maven-assembly-plugin`功能更为强大,比如你的工程依赖很多的JAR包,而被依赖的JAR又会依赖其他的JAR包,这样,当工程中依赖到不同的版本的 JAR时,并且JAR中具有相同名称的资源文件时,shade插件会尝试将所有资源文件打包在一起时,而不是和assembly一样执行覆盖操作。 ### 4.1 基本配置 @@ -247,3 +259,13 @@ Strom官方文档 Running Topologies on a Production Cluster 章节: 通常使用`maven-shade-plugin`就能够完成大多数的打包需求,其配置简单且适用性最广,因此建议使用此方式。 + + +## 参考资料 +关于Maven各个插件的详细配置可以查看其官方文档: ++ maven-assembly-plugin : http://maven.apache.org/plugins/maven-assembly-plugin/ ++ maven-shade-plugin : http://maven.apache.org/plugins/maven-shade-plugin/ ++ maven-jar-plugin : http://maven.apache.org/plugins/maven-jar-plugin/ ++ maven-dependency-plugin : http://maven.apache.org/components/plugins/maven-dependency-plugin/ + +关于maven-shade-plugin的更多配置也可以参考该博客: [maven-shade-plugin 入门指南](https://www.jianshu.com/p/7a0e20b30401) \ No newline at end of file