实际上,我在使用Maven和Spring方面还很新,我很好奇我们如何规范项目结构。正如我们所知道的,如果我们第一次创建Maven项目,它只会给出以下结构:
project
- pom.xml
- src/
- main/
- java/
- test/
java目录是我们放置Java代码的目录,我明白这一点。但是,当我们制作一个包含HTML、CSS或JavaScript等Web文件的Web应用程序时,我们需要另一个目录来放置它。
当我在Maven中使用Spring或Spring Boot时,它还创建了resources目录,也位于main目录下。因此,现在的目录结构看起来像这样:
project
- pom.xml
- src/
- main/
- java/
- resources/
- test/
在其他一些Maven Web项目示例中,我发现了不同的结构。它在main下面有一个webapp目录。在webapp内部还有WEB-INF和META-INF目录,他们将网站文件(如HTML、CSS等)放置在这里。该项目的结构如下:
project
- pom.xml
- src/
- main/
- java/
- resources/
- webapp/
- WEB-INF/
- META-INF/
- pages/ *contains html pages
- static/ * contains css and javascript files for styling
- test/
这就是我感到困惑的地方。我对此有一些问题。
- 我们怎么知道这是最佳结构呢?实际上,Maven 和 Spring 应用程序的最佳结构是什么?
- 如果结构像我给出的第三个例子,我们如何在调用资产文件时在应用程序中使用它?
- 在构建某些 Web 应用程序时,WEB-INF 和 META-INF 目录是否真的需要存在?
WAR
或JAR
,它将自动确定项目结构? - Ichroman Raditya Duwilawebapp
目录。我认为这是因为thymeleaf
。我说得对吗? - Ichroman Raditya DuwilaWAR
是Web应用程序类型,位于您的pom.xml
文件中。无论如何,您都需要WEB-INF
目录。至少,您必须在其中放置web.xml
文件。此外,您的模板必须在 WEB-INF/ 目录内。除了内部的WEB-INF/**
之外,来自webapp
目录的所有文件都将直接可用。如果缺少webapp
目录,请创建它。 - ruslanys