gpt4 book ai didi

java - Maven + Spring 项目结构标准

转载 作者:行者123 更新时间:2023-12-03 18:11:21 24 4
gpt4 key购买 nike

其实我是Maven和Spring的新手,很好奇我们是如何标准化项目结构的。正如我们所知,如果我们第一次创建 Maven 项目,它只会给出这个结构:

project
- pom.xml
- src/
- main/
- java/
- test/

java目录是我们放java代码的目录,我是这么理解的。但是,当我们制作一个应该有 HTML、CSS 或 Javascript 等 Web 文件的 Web 应用程序时,我们需要另一个目录来放置它。

当我在 Maven 中使用 Spring 或 Spring Boot 时,它也在 ma​​in 目录下创建了 resources 目录。所以结构现在看起来像这样:

project
- pom.xml
- src/
- main/
- java/
- resources/
- test/

在其他一些maven web项目示例中,我发现了不同的结构,它在ma​​in下也有webapp目录。在 webapp 中,它有 WEB-INFMETA-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/

这就是我感到困惑的地方。我对此有一些疑问。

  1. 我们怎么知道它是不是最好的结构?老实说,maven和spring应用的最佳结构是什么?
  2. 如果结构类似于我给出的第三个示例,那么在调用 Assets 文件时,我们如何在我们的应用程序中使用它?
  3. 当我们构建一些网络应用程序时,是否真的需要 WEB-INF 和 META-INF 目录?

如果有人能给我一个明确的解释,我将不胜感激。谢谢。

最佳答案

实际上这取决于应用程序的类型。如果你想做一个JAR文件,比如Spring-Boot应用,嵌入servlet容器时,那么你不需要webapp目录。

因此,JAR 的单个 Maven 项目的最佳结构是:

project
- pom.xml
- src/
- main/
- java/
- resources/
- test/
- java/
- resources/

对于WAR:

project
- pom.xml
- src/
- main/
- java/
- resources/
- webapp/
- WEB-INF/
- web.xml
- index.jsp
- css/
- styles.css
- test/
- java/
- resources/

webapp(WEB-INF/** 除外)目录下的所有文件都可以通过 servlet 容器使用。此外,如果您正在使用模板引擎并且不想直接访问模板文件,那么您应该将模板放入 WEB-INF/ 目录,例如:src/main/webapp/WEB-INF/pages/.

META-INF目录其实就是Java元目录。你不应该在里面放任何东西。

关于java - Maven + Spring 项目结构标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44562306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com