一:maven简介
Maven是一个项目管理和综合工具。maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。Maven的主要功能是:项目构建;项目构建;项目依赖管理;软件项目持续集成;版本管理;项目的站点描述信息管理;由此可以看出Maven最主要的体现在了哪2个词?——对了,“项目”和“管理”!加在一起就是项目管理。
说到底maven主要做了2件事:①对架包的管理,我们不必再去网上各种找架包导入项目了,因为maven已经把所有架包都放在一个远程仓库里了,要用的话直接通过maven去配置进来就好了;②把项目的目录结构给统一定制好了,解决项目出现的因根据个人习惯所建立自己的结构目录而导致下一个项目交接人看不懂项目结构。
二:maven的安装及配置
这里就不介绍了,网上有一大堆,此处贴个maven教程 安装教程
验证maven安装成功之后,在idea配置本地maven,如下操作就算大功告成了。

修改配置文件

毕竟官方的maven仓库在国外,所以把镜像换成阿里云镜像,访问会快很多

三:结合idea开始撸一个入门Demo
标准的maven工程目录的约束如下

新建一个maven工程,以下就是一个maven工程的结构目录,java存源代码的,resource存资源文件,filter存几种开发环境的配置的过滤文件,webapp存页面等静态页面文件

写了HelloWorld.java源文件

接下来修改pom.xml配置文件,build标签是构建程序用的,resources标签里的没一个resource标签存放每一个要编译的资源文件,include标签的意思是包括哪些文件需要打包,这样maven项目编译时就不会漏掉xml文件了,plugins标签是代表插件,所有依赖的插件都放这里。

详细build标签的配置看这里

properties标签专门放依赖包的版本号,然后下面引用就可以直接用,这样做对项目的可扩展性好,就比如某一天你的项目依赖包要升级了,你只需要直接更改这里的版本号就可以了。dependencies标签是配置要用到的依赖包。

使用下面3个向量定位一个maven工程,分别是<groupId>域名+项目名,<artifactId>模块名,<version>版本

四:maven的生命周期
主要使用到的是下图的三个命令,在compile时会产生一个target目录,里面是专门存放项目编译的字节码文件的,点击clean后这个目录就会没了,package打包会把项目打包成你配置的war包或者jar包等形式。

打包成功后的包就存在target下,配置下tomcat把包部署到tomcat就可以正常运行了

写在最后,放一个 maven的学习教程
演示不选择模板,手工创建一个maven工程,结果的项目结构如图,我们还需手工添加webapp

接下来的操作直接参考这篇文章无模板的maven创建过程