在我们搭建开发环境的时候,通常会把项目需要的jar包放到lib目录中,这样项目发布的时候就会将所有的项目相关的包部署到应用环境当中去。这种情况下,jar包只要是不冲突,直接拷贝到WEB-INF\lib目录中即可。
但在开发的过程中我们会接触到两种环境,一是开发环境(对应eclipse中的类路径),二是运行环境(对应应用服务器中的类路径)。那么这时两个环境中jar包的关系就比较复杂了。
这时处理jar包间的关系的总体原则是要保持这两个环境中jar包的版本一致或者兼容。
总体上看,在开发及部署的过程中一个项目中的jar包主要有三类。一是应用服务器上的jar包,二是项目所需jar包,三是开发环境所需jar包。
在项目WEB-INF\lib目录中的jar包是两个环境中共用的部分。这部分jar包要求不能和两个环境中的jar包有冲突,也就是说lib目录下的jar包是和两个环境中的jar包互补的。而两个环境中的jar包原则上应该是相同的或者兼容的。
例如在eclipse下开发javaEE项目,我们会用到javaEE相关的jar包javaEE.jar,这时的需求是开发环境的需求。但在应用服务器环境中就不需要这个jar,因为应用服务器中会有相关的javaEE的jar包。这时如果我们将项目发布到应用服务器环境中,就会发生jar包冲突的情况。
可我们在开发时还要用这个包,发布时还不能发布到应用服务器中,这怎么办呢?解决的办法如下:
在eclipse中加入这个jar包(这个jar包当然不在项目目录中了),eclipse会提示:
Classpath entry XXX.jar will not be exported or published. Runtime ClassNotFoundExceptions may result.
因为我们这时候确认这个jar包是不需要部署到应用服务器环境中的(如果需要就直接放到lib目录下就可以了,就不用费这个事了),所以我们做如下操作,解除eclipse这种依赖关系的提示。
点中提示信息-->右键-->Qick fix->exclude the associated raw classpath entry from the set of potential publish/export dependencies-->finish.
这样就解除了,jar包的依赖,发布的时候就不会在项目中出现这个jar包了。
分享到:
相关推荐
当您在Eclipse中看到所有工程都有红色感叹号,并提示“dns_sd.jar missing”,这通常意味着您的项目缺少这个特定的jar文件作为依赖。这种问题可能是由于多种原因造成的,正如描述中提到的,作者是因为卸载了Apple的...
在标题和描述中提到的,"lombok jar包不用get set方法用这个插件不报错",这意味着使用Lombok可以在不手动编写getter和setter的情况下,依然能够正确地访问和修改对象的属性,而不会出现编译错误。 首先,我们需要...
- `content.jar` 和 `artifacts.jar`:可能包含了 JRebel 的核心组件和依赖库。 - `clippy.swf`:可能是一个动画或提示图标,用于提供用户体验。 - `3rd-party-licenses-jrebel.txt`:第三方软件许可协议,确保合法...
然而,有时在开发过程中,我们可能会遇到"The import javax.crypto cannot be resolved"这样的错误提示,这意味着编译器无法找到这个包或者其依赖的库。这通常是由于JDK的默认配置中未包含某些安全相关的扩展,如...
- **自包含运行**:考虑到Java读取jar内资源的大小写问题,开发者可能需要在MANIFEST.MF文件中指定主类,并包含所有依赖的类库。 7. **源码分析**: - **源代码.rar**:这个压缩文件包含的是游戏的源代码,通过...
通过引入这个API库,可以确保开发环境具有运行JSP应用程序所需的依赖,从而消除编译或运行时的错误。 **标签解析:**"jsp-api" 这个标签明确了主题与JSP API有关,API(Application Programming Interface)是一组...
接着,处理项目自身依赖的JAR包,可以从WebRoot目录下的WEB-INF/lib目录选择所有JAR包添加到Global Libraries中,以消除所有编译错误。 最后,配置运行环境。进入"Run -> Edit Configurations",添加新的应用服务器...
因此,解决方法是创建一个名为"libs"的文件夹,将所有依赖的JAR文件复制到该目录下,然后Eclipse会自动识别这些库,并消除红感叹号。 在某些情况下,可能是由于项目中引用的JAR文件在实际的"lib"目录中缺失,导致了...
同样,通过"Build Path" -> "Configure Build Path" -> "Libraries" -> "Add External JARs",选择你下载的jstl.jar和standard.jar文件,点击"Apply and Close",错误应该会被消除。 对于数据库相关的问题,假设...
捆绑包是OSGi中的基本单元,类似于Java的JAR文件,但具有更高级别的模块化特性。当捆绑包的生命周期管理(如启动、停止、更新或卸载)出现问题,或者捆绑包之间的依赖关系无法满足时,可能会抛出此类异常。 描述中...
然而,当评估期结束时,IDE通常会限制其功能或者频繁弹出购买提示,影响开发工作。"ide-eval-resetter" 这样的工具就是为了消除这些限制而设计的。 在"ide-eval-resetter-2.3.5"这个版本中,我们可以推测它修复了...
Lombok不仅仅是一个库,它还提供了一个IDE插件,使得开发者在使用IDE(如IntelliJ IDEA或Eclipse)时能获得更好的支持,例如代码提示和自动完成。 **二、Lombok的作用** 1. **减少冗余代码**:Lombok通过注解的...
6. 关闭项目,再重新打开,错误提示即可消除。 四、 其他可能的问题 在导入 JavaWeb 项目时,我们还可能会遇到其他问题,例如 JDK 版本不一致导致的错误。在这种情况下,我们可以按照以下步骤操作: 1. 添加 JDK ...
实例008 为最新的Eclipse安装中文语言包 12 实例009 活用Eclipse的工作空间 14 实例010 在Eclipse项目中编程输出字符表情 15 实例011 为Eclipse添加新的JDK环境 17 实例012 设置Eclipse中文API提示信息 18 实例013 ...