如何将“WEB-INF/lib”文件夹移动到 Java 动态 Web 应用程序中的子文件夹?

Posted

技术标签:

【中文标题】如何将“WEB-INF/lib”文件夹移动到 Java 动态 Web 应用程序中的子文件夹?【英文标题】:How to move "WEB-INF/lib" folder to a sub folder in a Java Dynamic Web App? 【发布时间】:2013-01-08 16:56:54 【问题描述】:

如何在 Eclipse 中配置 Java 动态 Web 项目,使 WEB-INF/lib 文件夹位于子文件夹中?

例如,假设我希望我的“lib”文件夹位于此处:

src/main/webapp/WEB-INF/lib

我的 webapp 根目录在这里:

src/main/webapp/

如何在 Eclipse 中进行配置?我知道我可以“添加 jars”,但我希望将它们组织在我的应用构建路径的“库”部分中的“Web 应用程序库”部分下。


我的尝试:

我尝试通过执行以下操作添加“Web App Libraries”,但它没有检测到我的“src/main/webapp/WEB-INF/lib”文件夹中的 jar:

项目 |属性 | Java 构建路径 |图书馆 |添加库 |网络应用程序库

我还确保我的网络应用程序 (src/main/webapp) 的根目录也在我的“构建路径上的源文件夹”中,但没有运气:

项目 |属性 | Java 构建路径 |来源 |构建路径上的源文件夹

我知道它可以完成,因为我有另一个项目已配置并运行此配置,但我不确定如何复制配置。

谢谢!

【问题讨论】:

【参考方案1】:

事实证明,我可以通过将以下文件添加到我的项目中来实现它:

.settings/org.eclipse.wst.common.component

 <?xml version="1.0" encoding="UTF-8"?>
  <project-modules id="moduleCoreId" project-version="1.5.0">
      <wb-module deploy-name="test1">
          <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
          <property name="context-root" value="test1"/>
          <property name="java-output-path" value="/test1/build/classes"/>
      </wb-module>
  </project-modules>

我通过创建一个全新的“动态 Web 项目”发现了这一点:

“文件 | 新建 | 动态 Web 项目” 完成这些步骤,直到您到达最后一个称为“Web 模块”的步骤 在那里我可以为应用程序指定一个“内容目录”,我使用了“src/main/webapp/”。 这生成了一个我喜欢的新项目。然后我在项目文件夹中搜索“src/main/webapp”并在这个xml文件中找到它,我刚刚将它复制到我的项目中,并将所有引用从“test1”更改为我的项目名称,它工作了!

注意: 您可能还需要将“Web App Libraries”添加到您的项目中,如我的问题中所述。

【讨论】:

以上是关于如何将“WEB-INF/lib”文件夹移动到 Java 动态 Web 应用程序中的子文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何在eclipse中使用Ivy + IvyDE将不同的jar放到lib和web-inf/lib中

如何得到javax.servlet.jsp包

如何让maven 将工程依赖的jar 复制到WEB-INF/lib 目录下

使用 Eclipse/Tomcat 自动将 3rd 方 jars 添加到 WEB-INF/lib

如何将 maven 托管依赖项复制到 war\web-inf\lib 中,以便我可以在 Eclipse 中以调试模式运行我的 GWT 2.0 应用程序?

如何让maven 将工程依赖的jar 复制到WEB-INF/lib 目录下