问题描述

今日,遇到一个问题,在用IDEA写好Java 代码之后,在IDEA运行没有问题,但是用maven打成jar包再运行的时候,却报缺失依赖包的情况。例如下面情况

pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>bigdata_project</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.10.1</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.10.1</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>2.10.1</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.10.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>3.1.2</version></dependency><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><version>3.1.0</version></dependency></dependencies></project>

settings.xml配置

<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><!--<mirrorOf>central</mirrorOf> --><mirrorOf>*</mirrorOf>
</mirror>

IDEA配置

其余都是默认配置

IDEA运行代码正常:

使用maven工具点击 clean 清除,然后点击 install 生成 jar包

打开cmd命令行界面,运行jar包某个类,出现异常,如下图


问题分析以及解决办法

这时候,如果你将这个jar包解压,你会发现,除了自己写的代码,并没有把需要依赖的包打进去,jar包里面空空如也!可以判定,使用maven打包的时候,并没有把依赖包也打进去!

参考文章

https://www.cnblogs.com/chenmingming0225/p/13204247.htmlhttps://www.cnblogs.com/chenmingming0225/p/13204247.html

maven-shade-plugin 插件介绍

maven-shade-plugin介绍及使用_库昊天的博客-CSDN博客_maven maven-shade-plugin基本功能maven-shade-plugin提供了两大基本功能:将依赖的jar包打包到当前jar包(常规打包是不会将所依赖jar包打进来的);对依赖的jar包进行重命名(用于类的隔离);Goals maven-shade-plugin 只存在一个goal shade:shade,需要将其绑定到 phase package 上,使用框架如下:&lt;project&gt...https://blog.csdn.net/yangguosb/article/details/80619481

解决办法,需要在pom.xml文件添加 plugin  java编译插件,maven的编译插件有很多,我添加的是maven-shade-plugin插件,代码如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>bigdata_project</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.10.1</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.10.1</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>2.10.1</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.10.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>3.1.2</version></dependency><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.1.0</version></dependency><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><version>3.1.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.1.0</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><filters><filter><artifact>*:*</artifact><!-- 这里必须要填下面这段,否则报错 --><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><!-- 下面这里要填要运行的类,否则会报错 --><mainClass>cn.kafkademo.ProducerDemo1</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins></build></project>

注意需要填写mainClass 和 excludes 否则会报错,如下图

然后再使用maven工具点击 clean 清除,点击 install 生成 jar包

使用cmd打开命令行,运行jar包,就能正常运行了

解决使用maven打jar包缺失依赖包问题相关推荐

  1. 使用Maven在jar中包含依赖项

    本文翻译自:Including dependencies in a jar with Maven Is there a way to force maven(2.0.9) to include all ...

  2. python 查询包_查找Python包的依赖包(语句)

    Window 10家庭中文版,Python 3.6.4, 今天看完了urllib3的官文(官方文档),因为没有具体使用过,所以,仍然是一知半解,但是,突然想知道 urllib3以及前面学习过的requ ...

  3. maven引入hadoop_Maven引入hadoop依赖包出错解决办法

    错误: ArtifactTransferException: Failure to transfer org.apache.hadoop:hadoop-hdfs:jar:2.6.0 from http ...

  4. maven 打包指定依赖包_Maven打包成Jar文件时依赖包的问题

    我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用.我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入 ...

  5. maven编译jar包时打一个瘦包,依赖包和配置文件到jar包外面

    背景 打的jar包很大 很多时候我们在开发的时候,maven的依赖包非常多,导致我们最后打的一个jar包有一百多MB,需要将包上传到liunx环境耗时非常久,很多时候我们并没有改变依赖包,而只是改变我 ...

  6. maven明明本地仓库有依赖包,还会远程下载的问题

    我今天在无网的环境下,打算进行maven编译打包,可是明明有本地仓库,也配置了本地仓库,但是还是会从远程下载 然后再各大网友的帮助下(百度,谷歌),查询到主要的原因是在本地仓库的每个依赖包都存在_re ...

  7. idea打jar包(包括依赖包)

    今天试着将一个maven项目打成jar包供其他项目使用,虽然看起开,对于第一次弄得我还是费了不少功夫,在此记录一下,方便日后查看也给和我一样在此处刨坑的小伙伴们指点迷津. 先讲一下此次打jar包的基本 ...

  8. 在IDEA中为项目引入maven中央仓库中的依赖包

    如果是maven项目直接在pow.xml文件中引入依赖即可,这些依赖包将会下载到maven配置好的仓库中.但是有些时候我们并不希望其下载到全局的仓库中而是只在项目中使用,或者项目根本不是maven项目 ...

  9. 解决 npm 无法安装 devDependencies 下的依赖包的问题

    2019独角兽企业重金招聘Python工程师标准>>> 分析原因 起初无法安装 devDependencies 下依赖包,急的不行,以为是 npm 版本有问题,陆续安装了 node@ ...

最新文章

  1. 详解Python中的循环的几个类型
  2. JSEnhancements.vsix
  3. 【C】关于main()函数参数的问题;
  4. 微软推出 Pylance,改善 VS Code 中的 Python 体验
  5. zabbix mysql版本号_zabbix 监控mysql5.6版本 及主从
  6. python选择题题目_Python接口测试题(持续更新中)
  7. 转正答辩ppt_如何顺利完成转正答辩?
  8. ABP官方文档翻译 4.6 审计日志
  9. R语言与非参数统计(核密度估计)
  10. Android OpenCV 身份证训练
  11. SPSS入门教程——合并文件添加变量匹配数据的方法
  12. QListview获取Item内容变化信号及内容
  13. 781.森林中的兔子
  14. matlab画带方差的柱状图,带方差的柱状图
  15. 联想用u盘重装系统步骤_详解联想如何使用u盘重装win10系统
  16. 《星露谷物语》mod安装超详细教程
  17. GOM登录器配置免费版生成图文教程
  18. Java遍历目录下的所有文件
  19. matlab上确界距离,习题课PPT课件.ppt
  20. SpringBoot+Mybatis+Vue整合

热门文章

  1. recycler 刷新图片闪烁_android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)...
  2. [面试题]1000瓶水中有1瓶是有毒的,问需要多少只老鼠才能试出那瓶有毒?
  3. 烙铁-电子工程师的画笔
  4. 显卡内存和计算机内存,显卡爆显存和满显存有什么区别
  5. 机器学习实验二 决策树
  6. 年纪一大把,胡子一大堆,还能学好编程吗?今天我问了我自己
  7. python_day7
  8. 王者荣耀微信登陆不了服务器,王者荣耀微信区怎么登陆不了 王者荣耀微信区怎么登不上...
  9. Notepad++ 无法安装 HexEditor 插件 / 安装之后闪退
  10. larval助手函数——larval中文文档