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是一种向上寻找的层次结构,也有向下的,或者是可配置的。
相关推荐
Maven添加远程仓库 Maven依赖机制 定制库到Maven本地资源库 使用Maven创建Java项目 使用Maven创建Web应用程序项目 Maven POM Maven 构建生命周期 Maven 构建配置文件 Maven存储库 Maven插件 Maven创建Java项目 使用...
它通过在向导步骤中选择 Aspose Java API(如 Aspose.Words、Aspose.Pdf 或 Aspose.Cells)来创建基于 Aspose maven 的项目,并将这些选定的 Aspose API 的 maven 依赖项添加到新创建的 maven 项目的pom.xml。 创建...
在一个项目中使用多个模块的一个方法是将模块添加为依赖项,正常情况下,我们会添加一个外部模块作为依赖 工程由Eclipse环境导入,我用的Eclipse4.7 主工程shushuang-project 子WEB工程shuang-project-web 公共工程...
添加依赖 5.搭建ssm 5.1.创建数据库 5.2.创建项目:确定项目可以在tomcat上运行 5.3.添加Spring 添加jar包 添加JAR包 增加版本的常量 在不同的项目中可以使用不同的版本-这种情况不允许 添加配置文件 写...
Maven依赖管理 (Dependency Management) 3.5.6. 站点生成和报告 (Site Generation and Reporting) 3.6. 小结 4. 定制一个Maven项目 4.1. 介绍 4.1.1. 下载本章样例 4.2. 定义Simple Weather项目 4.2.1...
Maven3的学习教程资料,由Java私塾制作,配套视频由私塾在线提供. 1、为什么要使用maven,复习项目构建的概念,导入jar包的复杂性 2、在非ide的环境下使用...这是这次学习的重中之重,其中的添加依赖时的分析堪称经典
这是一个易于使用的Maven3插件,负责Eclipse RCP环境中的第三方依赖关系管理的自动化。 你为什么要打扰? 您是否熟悉Maven,Gradle或其他任何精美工具中的自动依赖项管理? 您只需定义一个项目描述符,添加一堆...
随附“ Aspose Maven项目向导”,可让您通过向导步骤选择Aspose Java API来创建基于Aspose Maven的项目,并将Aspose API Maven依赖项的引用添加到新创建的Maven Project的pom.xml中。 创建的基于Aspose Maven的项目...
添加依赖项 - 确保在 maven 中进行全新安装,将您需要的 jars 放入项目中,这样您在编码时就不会出现库问题 设置数据库 创建模型类 - 添加 JPA 注释 创建 DAO 组件 - @Repository 创建服务组件 - @Service 创建...
• 在 Eclipse 中利用 Maven • 项目管理: Maven 让事情变得简单 作者简介 胡键,西安交通大学硕士,2000年毕业后一直从事软件开发。2002年开始使用Java,在平时的项目开发中经常采用OpenSource的工具,如Ant...
修改自官方最新的3.3.1版本,添加对Maven工程依赖包的自动计算,不需要手动在DevLoader中勾jar包,方便开发调试。使用方法:解压到Eclipse目录下dropins目录!
通过在安装时添加-DskipTests标志或将POM.xml文件中的${skipTests}属性设置为true来跳过测试。 包裹 将项目打包到本地 Maven 依赖项中: >> mvn package 跑步 从命令行执行 jar: >> java -jar target\...
修改自官方最新的3.3.1版本,添加对Maven工程依赖包的自动计算,不需要手动在DevLoader中勾jar包,方便开发调试。使用方法:解压到Eclipse目录下dropins目录!
配置环境变量MAVEN_HOME,变量值为maven的根目录:D:\Program Files\apache-maven-3.3.9,在PATH中添加bin的路径:D:\Program Files\apache-maven-3.3.9\bin, 三、配置settings.xml文件,打开maven conf目录下的...
我们从github上直接下载的源码是无法导入eclipse当中的,这是我整理好的Maven工程,大家可以直接导入到eclipse当中并使用maven install安装到本地仓库,哪个工程要使用fastdfs-client只需要添加依赖即可使用。
我发现 e(fx)clipse core.di 、 core.adapter 、 core.text非常好的 Eclipse 添加到 Eclipse 自己的框架中,然后决定将它们的代码core.text为一个自治包: com.andrearichiardi.eclipse.addons 。 要了解其功能,...
1.json-lib的maven依赖jar包下载失败,请添加<classifier>jdk15 或者直接导入百度网盘的jar包 2.前台和后台都是html模板,然后通过jquery ajax获取数据渲染,没有jsp技术 3.前台大部分页面是静态的模板内容,有交互的...
vi)在Eclipse中右键项目,选择Configure --> Convert to Maven Project vii)运行项目。右键项目,run as maven build... --> Goals: jetty:run #启动配置 前提准备,已经申请到QQ互联的APP_ID, APP_KEY i)...
一、添加依赖 Android Studio:在项目的根目录下build.gradle里的allprojects下添加如下引用: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 然后在app目录下 build.gradle 下...