本文共 2666 字,大约阅读时间需要 8 分钟。
点击pom.xml文件.我们可以看到下面有7个标签。
Overview:显示maven项目的一些基本信息
Dependencies:添加jar包的页面Plugins:添加maven插件的页面.比如tomcat-maven-plugin等Dependency Hierarchy:用于显示jar包的依赖关系.没事的时候可以看看jar包的依赖关系Effective POM:显示maven的编译路径,plugin之类的.也可以无视pom.xml:导入jar包的信息,可以在其中进行修改现在添加jar包: 点击Dependencies标签页 点击Dependencies中的add按钮搜索mongodb,显示如下图
其中Scope的选择,默认compile即可。
对于scope=compile的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个artifact对应的jar包在classpath中。
而对于scope=provided的情况,则可以认为这个provided是目标容器已经provide这个artifact。换句话说,它只影响到编译,测试阶段。在编译测试阶段,我们需要这个artifact对应的jar包在classpath中,而在运行阶段,假定目标的容器(比如我们这里的liferay容器)已经提供了这个jar包,所以无需我们这个artifact对应的jar包了。
添加完成后,在Dependencies页签可以进行管理,包括调整版本号等。
type表示依赖包的类型.
Scope表示这个依赖包的作用周期. 这些我们暂时不理会. 保存后.如果是第一次安装maven,可能会有一段长时间的jar包下载过程. 只要第一次把jar包下载到本地后就不需要下载了. maven默认的jar包下载地址在C盘 -->用户-->%User%-->.m2中maven会把和添加的jar包有依赖关系的全部下载下来.这样就避免了jar包缺失的问题了。
比如添加Spring-mvc相关的jar包,
maven下载完jar包后,点开项目中的Maven Dependencies,项目会下载很多jar包。多的这些包其实是和spring-context包有依赖关系的包。
1 | clazz.getResource( "className.class" ).toString(); |
4, 服务器分析法 了解各种应用服务器的class加载机制, 就能判断是什么原因, 什么时候导致的冲突, 这样可以通过调整class加载顺序解决, 最近一次WAS服务器上的jar包冲突就此方法解决.
Tomcat下的文件目录
/bin:存放启动和关闭tomcat的脚本文件; /conf:存放tomcat的各种配置文件,比如:server.xml /server/lib:存放tomcat服务器所需要的各种jar文件(jar文件只可被tomcat 服务器访问) /server/webapps:存放tomcat自带的两个web应用:admin应用和manager应用。 /common/lib:存放tomcat服务器以及所有web应用都可以访问的jar文件夹(web和tomcat服务器都可访问此jar) /shared/lib:存放web都可访问的jar文件。(可以被所有的web访问,但不能被tomcat访问) /logs:存放tomcat的日志文件 /webapps:当发布web应用时,默认情况下把web应用文件放于此目录下 /work:tomcat把由jsp生成的Servlet放于此目录 另:在web应用中,WEB-Inf目录下,也可以建立lib子目录,在此子目录下可以存放各种jar文件,这些jar文件只能被当前web应用访问。其中,在web-inf目录下的lib与classes目录,Tomcat类装载器先装载classes目录下的类,再装载lib目录下的类。因为类同名时,classes优先。 其中jsp运行时,查找class的顺序为:项目文件夹(WEB-INF\lib)—>容器文件夹(tomcat\common\lib)—>jdk文件夹(jdk\jre\lib\ext) Tomcat是一种向上寻找的层次结构,也有向下的,或者是可配置的。本文转自邴越博客园博客,原文链接:http://www.cnblogs.com/binyue/p/4680323.html,如需转载请自行联系原作者