1.在Eclipse中创建Eclipse项目后如何添加jar包?
点击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包有依赖关系的包。
<iframe id="iframe_0.39530447825835613" style="margin: 0px; padding: 0px; border-width: initial; border-style: none; width: 381px; height: 206px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://dl.iteye.com/upload/attachment/444868/7e670c51-1388-3c91-a09e-d8e2d7e7f565.png?_=4680323%22%20style=%22border:none;max-width:989px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.39530447825835613',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no"></iframe>
2.未使用Maven,出现服务器Jar包冲突的解决
1, java类找不到 java.lang.ClassNotFoundException
2, 方法不存在 java.lang.NoSuchMethodError
3, 字段不存在 java.lang.NoSuchFieldError
4, 类错误 java.lang.LinkageError
出现的冲突的可能性也越来越大, 而且正式环境复杂, 而且不能轻易修改服务器相关配置,
为解决jar包冲突的问题带来困难, 如果去解决过这些问题, 那是相当折腾人的, 下面是一些方法的总结.
产生冲突的原因:
这类冲突根本原因就是: 同一个java类存在多个jar包或类路径中, 而这大多由于使用了不同jar包版本造成.
解决办法:
1, 案例法
使用服务器上已有应用的jar包(前提:服务器上面已经部署过别的应用), 曾经使用过此方法解决冲突
2, 最小化法
正式环境有很多限制, 上传,部署,启停,测试这些过程越简单越好, 最近一次把war包中137jar删除只剩下14个jar包,
整个测试验证周期大大缩短
3, 来源法
如果能知道类加载于哪个jar包, 解决就比较容易, 在异常中会有出错类的完整类名,
如果能获取此类加载于那个jar包, 就能确认冲突的jar包,
如何知道class加载于那个jar包, 昨天灵机一动想到了一个方法, 其实也很简单, 代码如下:
1
|
clazz.getResource( "className.class" ).toString();
|
4, 服务器分析法
了解各种应用服务器的class加载机制, 就能判断是什么原因, 什么时候导致的冲突, 这样可以通过调整class加载顺序解决,
最近一次WAS服务器上的jar包冲突就此方法解决.
3.tomcat类加载顺序
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是一种向上寻找的层次结构,也有向下的,或者是可配置的。
相关推荐
下面将详细介绍如何在 Eclipse 中搭建 Maven 项目,包括安装 Maven 插件、配置 Maven 环境变量、建立 Maven 管理的工程、导入依赖包等步骤。 第一步:安装 Maven 插件 在 Eclipse 中,首先需要安装 Maven 插件。...
在本文中,我们将深入探讨如何在Eclipse中创建和管理Maven项目,这对于任何Java开发者来说都是至关重要的技能。Eclipse作为一个强大的集成开发环境(IDE),内置了对Maven的支持,使得开发者能够轻松地构建、管理和...
在开发过程中,我们常常会遇到使用Eclipse导入Maven项目时出现的各种报错情况。本文旨在系统地介绍如何解决这些常见问题,包括但不限于配置环境、设置JDK版本、配置Maven库以及解决各种依赖问题等。 #### 一、准备...
2. **自动构建和依赖管理**:Eclipse 插件会自动下载项目所需的依赖库,并根据 POM 文件中的配置进行管理。这简化了项目设置,减少了手动下载和添加库的步骤。 3. **项目索引更新**:插件会定期检查并更新 Maven ...
- 项目创建后,可以使用Maven命令来添加项目依赖包,这样可以自动下载并添加相应的jar包到项目中。 - Maven项目可以通过Eclipse转换为Eclipse工程,便于Eclipse管理和操作。 - 根据项目的需要,可能还需要修改web...
示例:在`pom.xml`文件中定义`junit.version`变量,并在依赖中引用该变量: ```xml <junit.version>4.12 <groupId>junit <artifactId>junit ${junit.version} <scope>test ``` #### 四、Maven构建 ...
eclipse构建Maven项目 eclipse是一个功能强大且广泛应用的集成开发环境...使用eclipse构建Maven项目可以帮助开发者更好地管理项目依赖关系、编译、测试和打包,并且可以与Tomcat服务器集成,方便项目的开发和部署。
3. 在"Installations"中,添加Maven的安装位置,确保Eclipse知道哪个Maven版本应该被用来构建项目。 使用"testweb_svn"源码学习: "testweb_svn"很可能是一个包含示例代码的Maven Web项目,它可能包含了Servlets、...
1. **添加依赖**:在POM.xml中,通过`<dependencies>`标签添加所需的库,例如Servlet API、JSTL等。 2. **配置Web应用结构**:确保源代码、静态资源和Web部署描述符(web.xml)放置在正确的目录下,通常为`src/main/...
在Eclipse中,我们可以通过右键点击项目,选择Maven > Update Project来同步Maven配置,这会更新项目的构建路径,确保所有依赖都正确导入。 对于持续集成和自动化构建,Maven的命令行工具也很重要。例如,可以使用`...
这个插件使得开发者能够在Eclipse环境中无缝地管理Maven项目,包括构建、依赖管理和生命周期操作。在Eclipse中安装并配置m2e插件后,开发人员可以享受到以下功能和优势: 1. **项目导入与创建**:m2e插件允许用户...
Maven的依赖管理功能在Eclipse中得到体现,开发人员可以通过Maven仓库自动下载项目所需的库文件。Eclipse的“Dependency Hierarchy”视图能帮助用户查看和理解项目依赖关系。 **6. 更新项目配置** Eclipse-Maven...
总之,Eclipse的Maven插件极大地简化了Java项目的构建和管理工作,让开发者能够在熟悉的Eclipse环境中充分利用Maven的强大功能。无论是新手还是经验丰富的开发者,都能从中受益,提高开发效率和项目的可维护性。
本篇文章主要介绍如何利用 Eclipse 和 Maven 将本地项目自动部署到 Nexus 仓库中。这种方法适用于团队协作环境下的依赖管理,能够帮助团队快速、稳定地进行项目的构建和分发。 #### 第一步:设置允许部署的服务器...
3. **项目配置**:在Eclipse中编辑和管理pom.xml文件,方便地添加、删除或更新项目依赖。 4. **聚合与模块管理**:处理多模块Maven项目,可以在一个父POM下管理多个子项目。 5. **源码跳转**:通过插件实现从依赖库...
Eclipse是一款广受欢迎的Java开发集成环境,而Maven则是一个强大的项目管理和构建工具,它遵循约定优于配置的原则,能够帮助开发者管理项目依赖、构建、报告等任务。然而,在某些网络环境不佳的情况下,Eclipse可能...
在IT行业中,Eclipse是一款广泛使用的Java集成开发环境(IDE),而Maven则是一个强大的项目管理工具,主要用于构建、管理和依赖管理。这篇博客"使用Eclipse构建Maven的Web项目"将详细介绍如何利用Eclipse创建并配置...