理解在Eclipse中导入的WAR文件及其文件夹结构

3
我刚从外部站点导入了一个WAR文件,基本上是一个servlet,导入到Eclipse IDE中(该项目在Apache-Tomcat上运行)。
当我导入它时,它有一个名为Web App Libraries的文件夹。所以这里有一些我新手的问题:
  1. 我不确定这个文件夹的确切目的是什么?它是做什么的,为什么要在你的项目中选择它?
  2. 我看到它有一个名为Improted Classes的文件夹和里面的foobar.class文件 - 为什么?(这些似乎也在Web Content文件夹中镜像 - 虽然在这里你可以修改代码,因为它们是foobar.java。)
  3. 还有对foobar.jar文件的引用 - 这些也在WEB-INF/lib文件夹中镜像 - 为什么?
我知道这些是基础类型的问题,但我刚开始接触Java和网站开发,所以如果听起来有点愚蠢,请原谅!顺便说一句,如果有人知道任何好的在线资源可以了解更多关于项目文件结构之类的东西,请让我知道。我只需要尽快掌握这些东西,因为项目截止日期很快。
这里有一张截图可以帮助您进行可视化:
4个回答

3

我猜这是从“项目资源管理器”视图中截取的屏幕截图。它并未显示确切的文件夹和文件结构,但添加了一些由项目元数据构建的糖果。

  • 要查看项目的真实结构,请尝试切换到“导航器”视图。
  • 在导入WAR文件期间,Eclipse基本上执行两件事:
    • 创建一个新的Web项目,并将WAR内容复制到新项目的“WebContent”子文件夹中。
    • 根据WAR构建项目的元数据(.project和.classpath文件)。
  • “Web应用程序库”部分显示WAR包含的jar文件列表(在WEB-INF/lib)
  • “已导入的类”(我也是第一次看到)似乎包含在导入的WAR中发现的类(WEB-INF/classes),Eclipse无法找到任何相应的源文件。要解决此问题,请在项目中创建一个新的Java源文件夹,并将现在位于“firstResource”文件夹中的类移动到该文件夹中。

2

Web App Libraries不是一个真正的目录,而是Eclipse认为这个项目的库的列表。

一般来说,这包括WebContent / WEB-INF / lib /中的所有jar文件。

有时,Eclipse不再在Eclipse的软件包资源管理器中列出它们所在的真实目录...但如果您使用其他程序查看,则仍然存在。


但它有什么用途?你能没有它吗? - Vidar

1

在Eclipse中,如果您使用Java Web Development视图,则需要进行以下配置:

  1. 提供Servlet库的Tomcat服务器运行时
  2. Java运行时
  3. 其他所需库

项目中的Web应用程序库会重复第一个设置,因此您不需要在开发计算机上安装本地Tomcat。

其余部分对我来说听起来有些混乱。

您的src / JavaSource文件夹中包含原始Java文件。它们不应该在Web Content中 - 那是为您的HTML、图像、JSP等准备的。

因此,典型的项目设置如下:

Project Name/
   JavaSource/ or src/ // holds all the Java Source Files, Servlets, Struts Actions
   WebContent/         // Nice root folder to hold web content files
       content files and folders
       WEB-INF/        // Web App Config folder
           lib/        // Libraries (but not tomcat ones)
           web.xml
           classes/    // Where your compiled Java goes, and configs (log4j.properties)

有些人也把JSP文件放在WEB-INF文件夹内,因为它不需要在JSP文件状态下进行访问,只需要在Tomcat自己编译的状态下进行访问。


0

很简单,Eclipse 提供了多个视图来展示你的项目结构。你现在看到的视图肯定是“包资源管理器”视图。在这个视图中,所有前面带有特殊图标的项目都是辅助项,它们可以通过简化访问某些东西(如计算机上提供的外部库或 Eclipse 本身或其他项目)来帮助你。

在 Eclipse 中,转到菜单 -> 窗口 -> 显示视图 -> 导航器 导航器视图将告诉你项目的真实文件夹结构。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接