如何用Java IDE建立一个Web工程

639 阅读3分钟

在建立Java Web工程的时候发现IDEA中的Web工程结构似乎和Eclipse的Web工程结构不大一致,所以就想搞清楚Web工程结构是怎样的.

从Eclipse的非Maven工程开始

我的第一个Java IDE还是Eclipse,用它建立Web工程,只需要新建 Dynamic Web Project即可

通常在Eclipse中配置完还要修改一下部署路径

这个Deploy Path即为部署路径,是什么意思呢?就是Eclipse会把你的项目输出到Deploy Path中 那输出到Tomcat中文件结构和我们在Eclipse中看到的结构是否一致呢?

显然并不是一致的,我主要关心的有三点: 1. java代码编译成的字节码去哪了? 2. 我引入的jar包去哪里了? 3. META-INF 是干啥用的? META-INF: 相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务 manifest.mf文件,在用jar打包时自动生成。 java代码生成的字节码在WEB-INF中的Classes文件下,我们引入的jar包在WEB-INF的lib文件下。

所以你的项目要是报ClassNotFoundException时,你就先去lib文件下找找看,看有没有这个jar包。

Eclipse的Maven工程

在新建Maven工程的时候我发现了这个,archetypes意味: 典型、原型。那archetype是究竟是什么意思了? 对此,我打开了Maven官网, In short, Archetype is a Maven project templating toolkit 简而言之,archetype是一个maven项目模板工具包 其实官网还有一堆的解释,不过我都看的云里雾里的,在我看来原型就是一个目录结构模板,当你选择一个archetype的时候就是选择了一种项目结构,同样也包括你编译输出之后的结构,供Tomcat识别的结构。

选择这个模板,生成的目录结构如下:

但是选择怎样的模板,最后供Tomcat识别的还是如下:

那我不选模板,还想建Web工程可不可以呢? 当然是可以的:

clipboard.png

右键选择 Java EE Tools 在选择Generate Deployment Descriptor stub 就自动产生了.(实在截不出来图)

IDEA的非Maven工程

选择模板

我原本以为目录结构是和Java EE的版本是有关系的,但是当我选择Java EE6的时候,目录结构和Java EE8一样的,但是最后供TomCat识别的目录都是一致的。

不选择模板

IDEA的Maven工程

我是不大喜欢IDEA新建Web工程的Maven archetype,之前建Web工程我都是自己建,不过你选了模板也没多大关系,你只需要在Project Structure中看一下编译后的文件都输出到哪里就可以了。

选择模板

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

clipboard.png

不选择模板

clipboard.png

clipboard.png

clipboard.png

clipboard.png