MyEclipse Blue 10.7在战争中错误地包含了引用的Java库JAR

MyEclipse Blue 10.7在战争中错误地包含了引用的Java库JAR,java,eclipse,jar,shared-libraries,war,Java,Eclipse,Jar,Shared Libraries,War,我在MyEclipse Blue 10.7中的Java项目的Java构建路径上有4个引用库。我的理解是,使用参考库的一个要点是,在构建和部署最终war文件时,它们不会包含在该文件中。然而,在我的例子中,这4个引用库中的所有JAR在构建和部署时确实包含在我的最终war文件的lib文件夹中 我关于被引用库如何工作的假设是错误的,还是存在一种设置或某种东西来防止被引用的库jar包含在war文件中 谢谢你抽出时间 你的假设是错误的。根据JavaEE教程,文件夹WEB-INF/lib […]包含包含企业b

我在MyEclipse Blue 10.7中的Java项目的Java构建路径上有4个引用库。我的理解是,使用参考库的一个要点是,在构建和部署最终war文件时,它们不会包含在该文件中。然而,在我的例子中,这4个引用库中的所有JAR在构建和部署时确实包含在我的最终war文件的lib文件夹中

我关于被引用库如何工作的假设是错误的,还是存在一种设置或某种东西来防止被引用的库jar包含在war文件中


谢谢你抽出时间

你的假设是错误的。根据JavaEE教程,文件夹
WEB-INF/lib

[…]包含包含企业bean的JAR文件,以及服务器端类调用的库的JAR存档

通常情况下,WAR文件包含所有引用的库,但不包含ServletAPI本身这样的JEE库。JEE库由servlet容器提供


因此,在servlet容器中运行的每个Web应用程序都可以有自己版本的库。

我知道Eclipse中必须有一个设置来精确控制lib文件夹中包含的内容,我的同事发现了这一点,从而得出了答案;为了完整,我将在下面发布详细信息。然而,我应该很清楚,我使用的是MyEclipse Blue 10.7,而不仅仅是Eclipse。我将编辑我的原始帖子上面说这样的话。我确信Eclipse中的某个地方也有类似的设置

  • 转到窗口>>首选项>>MyEclipse>>Java企业项目>>Web项目
  • 转到部署选项卡
  • 在库部署策略下,确保“来自用户库的JAR”未选中
就这样。由于该设置已被选中,我的库中的jar始终包含在我的war中的lib文件夹中;就我而言,这不是我想要的行为


感谢@vanje让我思考上面的评论线程。

我建议使用适当的构建工具(Eclipse主要是一个IDE),如Gradle、Maven、Ant等。我们确实使用Ant进行构建,但这并不能解决有关Eclipse行为的问题。Eclipse并不总是这样,我正在试图弄清楚它为什么现在这样做。因此,在我的例子中,我有一堆IBM Websphere 8.5 JAR,我在Eclipse中的构建路径中将其作为引用库包含。你是说Eclipse的正常行为是在我的war中的lib文件夹中包含所有这些IBM JAR吗?嗯,当我有一个动态Web项目,并且我通过右键单击Project/export/war文件导出war时,那么只有位于
WebContent/Web-INF/lib
下的项目中的JAR才会被包含。如果我通过右键单击project/Properties/Java Build Path/Libraries添加依赖项,那么这个JAR将不会包含在WAR.Hmmm中。。。我可以看到,我们的设置中的一个差异是,我的项目只是一个“Web项目”,而不是一个“动态Web项目”。这会有问题吗?如果是的话,有什么设置我可以更改到我当前的网络项目来解决这个问题吗?也许这会有帮助:谢谢你的链接。不幸的是,我没有一个“静态Web项目”,而只是一个“Web项目”…当我仔细观察时,它实际上起源于我最初创建的“Java项目”。这是对我现在所拥有的更准确的描述。我为这一混乱道歉!