其实我是使用Maven和Spring的新手,我很好奇我们如何标准化项目结构。我们知道,如果我们首次创建Maven项目只给出了这样的结构:Maven + Spring项目结构标准
project
- pom.xml
- src/
- main/
- java/
- test/
的的java目录是为我们上演了Java代码,我理解这一点。但是,当我们制作一个应该具有HTML,CSS或Javascript等Web文件的Web应用程序时,我们需要另一个目录来放置它。
当我在Maven中使用Spring或Spring Boot时,它创建了资源目录下还有主要目录。所以结构现在看起来是这样:
project
- pom.xml
- src/
- main/
- java/
- resources/
- test/
在其他一些行家web项目的例子,我发现不同的结构,它有的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',它会自动确定项目结构? –
例如,如果我使用thymeleaf,所以我不再需要WEB-INF了,对吧?我只是把** template **放在** resource **目录下。如果我错了,请纠正我。 –
我在这里发现了一些新东西。我使用thymeleaf创建了maven + spring引导应用程序,作为模板引擎和WAR进行打包,但它不创建任何'webapp'目录。我想这是因为'thymeleaf'。我对么? –