maven可以非常方便的管理jar包依赖问题。

这几天遇到的问题是:使用maven在idea跑flink程序提示

java.lang.ClassNotFoundException
java.lang.NoClassDefFoundError

开始时通过idea project structure(快捷键Ctrl+Alt+Shift+s)-libraries添加jar包,有很多jar包,通过手动一个个添加不是这么回事呀。

重新学习廖雪峰老师讲的maven。

maven本来就可以自己管理包依赖的。那时maven配置的不对?

删除.m2目录repository里面所有的文件,在idea右键project-maven-reimport,重新从阿里云下载jar包(需在.m2目录配置settings.xml)。

此处修改pom.xml <flink.version>1.9.1</flink.version> 的flink版本为1.9.1.

jar包已经重新下载好。仍然出现NoClassDefFoundError问题。

查看.m目录已经下载的jar包,flink-streaming-java_2.11-1.9.1.jar有那个类的,为什么没有import呢?

原来:pom.xml中依赖关系是provided,不是compile。

<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>${flink.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
<scope>compile</scope>
</dependency>

Maven定义了几种依赖关系,分别是compiletestruntimeprovided

scope 说明 示例
compile 编译时需要用到该jar包(默认) commons-logging
test 编译Test时需要用到该jar包 junit
runtime 编译时不需要,但运行时需要用到 mysql
provided 编译时需要用到,但运行时由JDK或某个服务器提供 servlet-api

其中,默认的compile是最常用的,Maven会把这种类型的依赖直接放入classpath。

将依赖关系修改为compile,在project右键-maven-reimport,运行程序。至此,问题解决。

再问:其实这个程序我之前成功运行过多次的,后来不知道为何就不能跑通了。

启示:解决问题不能蛮干,而要探寻问题和工具的本质,从源头上下手。

reference:

https://www.liaoxuefeng.com/wiki/1252599548343744/1309301178105890

https://blog.csdn.net/qq_24003079/article/details/87920001

http://wuchong.me/blog/2018/11/07/5-minutes-build-first-flink-application/

最新文章

  1. Java和C++的虚函数的异同
  2. Spring MVC学习笔记——Controller接口
  3. Simple colum formatting in Yii 2 GridView
  4. iOS开发Swift篇—(四)运算符
  5. spring mvc读取url变量
  6. (ASP.NET)C#连接Oracle数据库示例(中文乱码问题解决)
  7. delphi 修改Hint的字体和颜色
  8. Sqlite出现SQL error: database disk image is malformed的处理
  9. Ueditor1.4.3实现跨域上传到独立文件服务器,完美解决单文件和多文件上传!
  10. 首次使用Oracle SQL Developer 提示: enter the full pathname for java.exe
  11. SpringCloud-day08-Hystrix断路器
  12. wordpress安装后访问博客只显示文字的解决办法
  13. idea系列ide给git增加push按钮
  14. java十进制转换成二进制数
  15. canvas学习之小球动画
  16. jsp下载文件
  17. array_column 低版本兼容
  18. Zabbix漏洞汇总
  19. mac安装rz,sz文件操作指令包
  20. DU1525 Euclid&#39;s Game 博弈

热门文章

  1. SpringSecurity动态加载用户角色权限实现登录及鉴权
  2. Zxing QRCode
  3. mysql安装与sqlyog安装
  4. 【Python3爬虫】网络小说更好看?十四万条书籍信息告诉你
  5. LNMP架构介绍、MySQL和PHP安装、Nginx介绍
  6. Docker 构建私有仓库
  7. 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(一)
  8. javaWeb学习总结——文件上传、下载
  9. 第九次作业——DFA最小化,语法分析初步
  10. 转:关于java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication的解决