笔记总结自网易云课堂Maven课程
什么是Maven
Maven是由Apache基金会出品的,使用JAVA编写的开源项目构建和依赖管理工具。我们在构建web工程中,需要进行的操作包括JAVA文件的编译,war包的创建等,对于大型的项目来说,手动管理文件就会变的非常琐碎,并且对于多人合作的项目,管理上也会非常的不方便。在这种环境下,Maven就能派上用场了。
Maven的优点
它依据约定(惯例)优先原则默认限定了我们的目录结构,所以我们从Maven创建的项目结构都大致相同。
并且Maven提供了很好的第三方依赖管理,这些常用的依赖包都能从Maven的远程服务器中获取到,我们只需要进行一些配置就可以了,解决了我们的依赖维护问题。
Maven还提供了一致的项目构建管理方式,将项目管理中的各项操作抽象为生命周期(lifeCycle),生命周期的各项操作都已经定义完成,减少了我们构建项目的工作量。
并且,Maven的插件式架构提供了大量的可重用插件,使用起来方便快捷,对于我们的一些需求,只需要使用现有的插件就可以实现。大多数的IDE对于Maven也有很好的支持。
Maven的安装
Maven的官网提供了详细的下载安装使用说明,详细安装流程请参阅Maven官网。
Maven配置
Maven的配置存储在pom.xml文件中,一个项目的配置信息都存储在这个文件中,Maven依据这个文件来进行项目的管理操作。
它的主要结构如下:
<modelVersion>版本号</modelVersion>
<groupId>公司或小组名称,一般使用Java包的命名方式</groupId>
<artifactId>项目标识符,用来区分项目</artifactId>
<version>版本号-SNAPSHOT(开发版标识,用来区分版本)</version>
//以上三个标签被称为Maven的坐标,通过这三个标签可以唯一的定位一个项目
<packaging>war</packaging>//项目类型
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope >
</dependency>
</dependencies>
//以上是依赖包的声明。每一个依赖的声明都需要有Maven坐标来进行定位。
Maven基本命令
mvn archetype:generate//使用模版生成项目
mvn compile//编译代码
mvn test//单元测试
mvn package//打包
mvn deploy//项目部署
mvn site//生成项目相关站点,在线文档
mvn clean//清理
mvn install//安装依赖包到本地仓库
Tomcat插件
我们的项目最终是要通过Tomcat进行运行的,因此,Tomcat和Marven的配合使用就显得尤为重要。Tomcat官方提供了一个Marven插件,使得我们可以从Marven中启动一个Tomcat服务器,来进行项目的调试。
mvn help:describe -Dplugin=tomcat8
常见命令:
mvn tomcat8:run//启动一个嵌入的tomcat实例
mvn tomcat:deploy//发布项目
mvn tomcat:undeploy