当前位置: 首页 > 知识库问答 >
问题:

Maven+spring项目结构标准

子车心思
2023-03-14

实际上,我是使用Maven和spring的新手,我很好奇我们是如何标准化项目结构的。正如我们所知,如果我们第一次创建Maven项目,它只给出了这样的结构:

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

我明白,Java目录是我们放Java代码的目录。但是,当我们制作一个应该有HTML、CSS或Javascript等web文件的web应用程序时,我们需要另一个目录来放置它。

当我在Maven中使用spring或spring boot时,它也在主目录下创建了resources目录。所以现在的结构看起来是这样的:

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

在其他一些maven web项目示例中,我发现了不同的结构,它在main下也有webapp目录。在webapp内部,它有WEB-INF和META-INF目录。他们把web文件(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. 如果结构与我给出的第三个示例类似,那么当调用资产文件时,我们如何在应用程序中使用它?
  3. 当我们构建一些web应用程序时,真的需要WEB-INF和META-INF目录吗?

如果有人能给我一个清楚的解释,我会很感激的。多谢了。

共有1个答案

公冶嘉
2023-03-14

实际上,这取决于应用程序的类型。如果您想制作一个jar文件,例如spring-引导应用程序,当嵌入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元目录。你不应该在里面放任何东西。

 类似资料:
  • 我对maven相当陌生。在Eclipse中,我在其中创建了一个maven项目,我可以看到src/main/java和src/test/java,还有一个src文件夹,其中也包含主文件夹和测试文件夹。在这里我很困惑我需要在哪个src文件夹中写代码。使用主文件夹和测试文件夹的主要好处是什么?为什么有两个主文件夹和两个src文件夹

  • 我在公司做一个目录结构的项目。现在我必须将project转换为Maven project。它是基于公司框架的web应用程序。项目导出到war文件, 以下是项目结构: 我不能使用标准的Maven结构。到目前为止,我构建了pom。xml文件并使项目正常工作。依赖项是从私有服务器下载的,可以正常工作。 问题是文件结构。我试图覆盖默认的maven路径,但没有成功。当我导出war文件时,没有css、html

  • 学习前提 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建。 学习本讲还有一个前提:你必须会 Maven 相关知识点,Maven 相关知识点是不在本专题的讲解范围里面的,所以请自己私下进行学习。如果愿意你也可以看我过去整理的一份视频(提取码:wh5g):http://pan.baidu.com/s/1eSovBkI Maven 常用

  • 当默认的项目结构不适用时,可以自定义配置。查看 Gradle 文档中 Java plugin 部分以了解如何在纯 Java 项目中进行配置。 Android plugin 使用了类似的语法,但因为 Android 有自己的 sourceSets,所以需要配置到 android 块中。下面的例子使用了旧的项目结构(Eclipse),并把 androidTest 的 sourceSet 映射到 tes

  • 当涉及制作 electron 应用程序的问题时,项目结构会有些不同。如果你以前使用过官方的 vuejs-templates/webpack 设置,那么你对这个结构应该很熟悉。本文档在此章节将尝试解释样板代码的工作原理以及应用程序在构建中的一些区别。 单一的 package.json 设置 就在不久之前,两个 package.json 的设置是必需的,但是,感谢 @electron-userland

  • . ├── build/ # webpack 配置文件 │ └── ... ├── config/ │ ├── index.js # 项目核心配置 │ └── ... ├── src/ │ ├── main.js # 程序入口文件 │