Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)
转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12
写在前面的话
现在是越来越太原讨厌Eclipse这个IDE了,他的存在的各种问题完全可以出10w字的一本书了。当然,如果你喜欢在解决IDE问题过程中提升技能那就不要说了,我认为,Eclipse的设计存在一个问题:它恨不得把世界上所有的功能都囊括进来,但是出现的各种问题基本无法在IDE里自动消化。
Eclipse虽是个强大的IDE,但是在解决IDE本身出现的不友好的故障过程中浪费大量的时间是非常不划算的。由于这个原因,导致众多Eclipse的重度用户,在博客里开专栏收集各种Eclipse的问题,
举例来说明,在使用EclipseEE这个版本中安装Maven插件开发Java Web应用时,发布项目到Tomcat中无法启动,应为它并没有把Maven所管理的依赖自动添加到应用的ClassPath中,导致启动时报各种ClassNotFoundException。这一点,我已经花掉了差不多半天的时间来查明原因(这就是我写这篇文章的冲动所在),这个让我非常沮丧的经历再次让我对这个IDE失去信心。大部分初级工程师对IDE的依赖太过强烈,所以有必要分享一下给大家个提示,Eclipse本来只是个工具,不得不说在某些时候,这个IDE确实提高了不少效率,但是由于依赖的习惯,已经离不开Eclipse的人可能要在解决上述说的各种IDE不能消化的问题而话费大量的时间,难道只是为了使用这个“工具”而使用工具?却忘记了使用工具为了什么!
正题
以上是开篇感慨,目的是提示大家,不要被“神奇的Eclipse"工具所绑架。
下面揭示前文提到的:Eclipse中发布Maven管理的Web项目时找不到类的问题。
ClassNotFoundException: org.springframework.web.context.ContextLoader
这个报错是没有人希望看到的,既然看到了,没有办法回避,只能解决它(我们被Eclipse绑架了)。
原因是这样的:使用eclipse没有帮你把jar拷贝到lib下,classloader在load的时候当然是找不到的。在它帮你发布的web应用的lib下你可以看到如下:
进一步原因:发布设置里默认不发布这些jar,居然没有任何提示,这能算是智能的IDE吗?
在maven管理的web工程上查看属性,具体见上图,看到了吧,它根本没有关注maven原来是它的一个插件。jar全部忽略了
解决办法
接上图,看下图,你就懂了。使用“add...”把,没法子呀,它不管你,你只能自力更生了。
接着
哦,看见了吧,maven管理的classPath在这里,再走。
到此,你的classpath有了maven管理的jar了。点击“Ok”,再重新发布项目看看。那些Not Found可以消失了吧!
总之
举例说明了Eclipse的IDE内部问题是烦人且浪费时间的,从这一点说,我们一直在解决IDE抛给我们的问题,而无法专注解决我们当初使用它为了解决的问题。我们被它给绑架了。有人会说,你牛逼就不要用嘛。呵呵,我要是牛逼当然不会用他啦。
编程的本质上是把自己的思路用用代码来描述一下。却不得不被各种IDE干扰,在你牛逼之前,也是没有办法的。
当然了,世界上没有完美的IDE,只有完美的思考方式。当到一定程度,我们完全可以脱离任何IDE写出优秀的应用来。到那个时候,就是所谓牛逼的起码境界。前面的路都是用生命、血和汗来铺,这里只是希望人们少流些血和汗,早一天牛逼起来。
Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)的更多相关文章
- eclipse中基于maven构建的web项目pom.xml中指定的jar包无法发布到tomcat中
eclipse运行maven web项目报错: 信息: Starting Servlet Engine: Apache Tomcat/7.0.57 一月 07, 2015 11:50:44 下午 or ...
- Java归去来第4集:java实战之Eclipse中创建Maven类型的SSM项目
一.前言 如果还不了解剧情,请返回第3集的剧情 Java归去来第3集:Eclipse中给动态模块升级 二.在Eclipse中创建Maven类型的SSM项目 2.1:SSM简介 SSM ...
- Spring-在IDEA2016中创建maven管理的SpringMVC项目
这是一套我自己摸索出来的创建项目方法,基本是用在创建用maven管理的 Spring+SpringMVC+Mybatis的J2EE项目时. 创建一个maven管理的webapp项目 在创建项目时,选择 ...
- MyEclipse使用总结——在MyEclipse中新建Maven框架的web项目[转]
前面的文章我们已经在本机安装好了maven,同时在myeclipse中配置好了maven的插件. 链接如下: Maven安装----在Windows上安装Maven myeclipse安装maven插 ...
- maven的java web项目启动找不到Spring ContextLoaderListener的解决办法
用maven搭建的java web项目,上传到git仓库后,当同事clone下来项目,部署到tomcat运行时,就报了如下错误,即启动web项目时,加载web.xml文件,找不到spring的监听器, ...
- eclipse 中发布 maven 项目到 tomcat
第一步:在 eclipse 中 右键 你的项目 Run as --> Maven build...--> Goals: 输入 install run 第二步:在 eclipse 中 ...
- eclipse中使用Maven管理java工程设置jdk版本为jdk1.8
使用Maven管理Java工程时,maven可以自动下载工程中依赖的jar包,这对于大型的项目非常方便.但在初次使用eclipse新建maven工程时遇到一些问题,我的jdk安装的是1.8版本,在配置 ...
- idea 中利用maven创建java web 项目
转自:http://www.linuxidc.com/Linux/2014-04/99687.htm 本文主要使用图解介绍了使用IntelliJ IDEA 12创建Maven管理的Java Web项目 ...
- 使用Maven构建Java Web项目时,关于jsp中引入js、css文件路径问题。
今天有点闲,自己动手搭建一个Java Web项目,遇到jsp中引入js.css文件时路径不正确的问题,于是在网上查阅了很多资料,最终都无法解决问题,于是,上stackoverflow找到了解决方法,这 ...
随机推荐
- UILabel颜色逐渐变化
@interface UIViewController () @property (weak, nonatomic) IBOutlet UIView *backView; //空间是用storyBoa ...
- 扩展阿里巴巴Java开发规约插件(转)
转自:https://blog.csdn.net/u014513883/article/details/79186893 1.前言 工作中难免会遇到维护别人代码的情况,那么首先就得看懂别人写的代码.如 ...
- Node.js require 方法
Node.js 中存在 4 类模块(原生模块和3种文件模块),尽管 require 方法极其简单,但是内部的加载却是十分复杂的,其加载优先级也各自不同
- python 循环中使用多个subplot画子图像(python matplotlib use more than one subplot in loop)
在循环语句中画出多个subplot图像代码如下 http://jonathansoma.com/lede/data-studio/classes/small-multiples/long-explan ...
- java中循环删除list中元素的方法
重点哈 印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接 ...
- 阿里云Linux服务器购买、配置
购买.配置阿里云Linux服务器配置ftp发布网站全教程 http://blog.csdn.net/Jolesen/article/details/77505840
- 「NOI2016」网格 解题报告
「NOI2016」网格 容易注意到,答案最多为2,也就是说答案为-\(1,0,1,2\)四种,考虑逐个判断. 无解的情况比较简单 如果\(nm\le c+1\),显然无解 如果\(nm=c+2\),判 ...
- mysql数据库优化学习
目的避免出现页面访问错误慢查询造成页面无法加载阻塞造成数据无法提交优化从sql及索引,数据库结构,系统配置,硬件 日志慢查询日志: show variables like 'slow_query_ ...
- 2019牛客多校第四场D-triples I 贪心
D-triples 题意 给你一个\(n\),问至少有几个数或运算起来可以等于\(n\),并且输出数量和这个几个数.题目说明给的\(n\)一定符合条件(不会输出\(n= 1\) 之类不存在情况). 思 ...
- 常用github命令
常用github命令 git--版本控制软件 GitHub是一个基于Git的远程文件托管平台(同GitCafe.BitBucket和GitLab等). 在家里,开发完毕部分功能,推送到GitHub: ...