今天在在看李艳鹏老师的分布式微服务架构的时候看见了war结构,发现我对maven貌似一无所知。所以打算对maven只是总结一下。
最近一直用的是前后端分离的springboot微服务,对maven搭建传统web有些迷茫。
maven普通项目和web项目的不同
如果创建一个maven工程在create a simple project 勾选了就会创建一个最简单的maven工程。如果不选的话点击next在接下来的目录中找到maven-archetype-webapp那么创建的就是maven工程就是maven版的web工程。
maven web工程的目录结构
在我们的src/main目录下面在新建一个sql目录,用来放置我们创建数据库和表的sql语句文件。
再在我们的webapp目录下面新建一个resources文件,里面用来放置一些与前端页面有关的资源文件。
在webapp/resources文件目录下分别新建一个js,css,img文件夹,分别用来在其中放置js,css,img文件。
在WEB-INF目录下面新建一个jsp文件夹,用来放置jsp文件。
创建好的目录如下图:
其中
1.src/main/java目录下是用来放置java源代码的。
2.src/main/resources目录下是用来放置一个资源文件,如spring的配置文件,mybatis的配置文件,映射文件等等。
3.src/main/test是用来放对java的测试文件,如用@Test注解声明的测试类。
4.src/main/sql用来放创建数据库和表的sql语句文件。
5.webapp/resources/css,img,js分别用来放置与前端页面相关的css,img,js文件。
6.最下面的pom.xml用来配置项目需要用到的jar包和对应的版本。
Jar包和War包
JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。
如果一个Web应用程序的目录和文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,我们可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。
maven打jar包和打war包有什么去呗,打包的命令是一样的在pom文件里配的是jar包
那打的就是jar包,配的是war包那就是war包,maven打包使用的是同一个命令。