Maven入门简介
什么是Maven?
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information
是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个*信息片断能管理一个项目的构建、报告和文档等步骤
为什么要用Maven?
1.简化构建过程
Maven 确实屏蔽了很多细节,它已经大大简化了开发人员的工作
2.提供统一的构建系统
Maven 使用项目对象模型(POM)和一组所有项目共享的插件来构建项目,从而提供统一的构建系统。开发人员使用 Maven 构建项目的话,后期维护项目会节省大量时间
3.提供优质的项目信息
Maven 提供了大量有用的项目信息,这些信息部分来自您的POM,部分来自项目源
4.提供最佳实践开发指南
Maven 会汇总当前最佳开发实践的原则,并通过 Maven 影响其他项目
5.允许透明迁移到新功能
Maven 为 Maven 客户端提供了一种安装更新的简单方法,开发人员可以简单便捷的利用 Maven 的最新特性
Maven的配置
首先我们要下载Maven,这里附上maven下载地址Maven下载地址
下载之后当然就是Maven的配置了,接下来就是解压,之后在电脑的环境变量中配置如下:
新建:M2_HOME 变量为:解压Maven文件夹的根目录
然后再Path环境属性中添加:bin: %M2_HOME%\bin;
配置以后在cmd中运行 mvn -v 测试是否成功
当然,安装后的*仓库的地址为外网的,下载速度相对较慢,可以通过配置文件修改私服仓库为国内
即修改:apache-maven-xxx\conf目录下的settings文件
添加本地仓库:<localRepository>D:\UserData\repo</localRepository>
中间的文件夹可以自己指定
指定私服仓库
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
目录结构
└─src 源码
├─main 主要
│ ├─java java源码
│ │ └─com
│ │ └─woniuxy
│ │ └─build 包名
│ └─resources 资源: 配置文件
└─test 测试相关
└─java
└─com
└─woniuxy
└─build
生命周期
maven对构建(build)的过程进行了抽象和定义,这个过程被称为构建的生命周期(lifecycle),生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一到多个goal,goal是maven里定义任务的最小单元,相当于ant里的target,可以理解maven为一个插件的容器,每个插件绑定到某个goal执行
默认生命周期:校验-初始化-编译-测试-打包-集成测试-安装-部署
validate-initialize-compile-test-package-integrationTest-install-deploy
Maven坐标
Maven坐标主要用来指明其依赖范围,主要包括一下几种
- compile:编译时依赖在所有阶段都可获得,这是默认值
- provided: 提供的依赖范围用来编译应用程序,但无需部署。若你用到jdk或者应用服务器提供的JAR,则使用此范围,servlet APIs就属于这个依赖范围。测试时,此依赖范围也加入到classpath
- runtime:运行依赖范围在编译阶段是不需要的,只有在运行时需要,比如JDBC驱动程序
- test:测试范围依赖,仅在编译和运行单元测试时需要
- system 本地依赖,不建议使用
依赖传递
只有编译时和运行时依赖是传递的
其中主要包括两个原则
- 最短路径原则:
A->B->C(0.2)
A->C(0.1)
此时的依赖为:C(0.1) - 优先声明原则:
A->B->C(0.2)
A->D->C(0.1)
此时的依赖为:C(0.2)
仓库
本地仓库(local)->私服镜像(aliyun)->*仓库central
常用命令
- alias mvni=‘mvn -T 1C clean install -Dmaven.test.skip=true’
- alias mvnp=‘mvn -T 1C clean package -Dmaven.test.skip=true’
- alias mvnv=‘mvn versions:set -DgenerateBackupPoms=false’
- alias mvnd=‘mvn -T 1C clean deploy -Dmaven.test.skip=true’
- alias mvndd=‘mvn -T 1C clean deploy -P dev -Dmaven.test.skip=true’
- alias mvndo=‘mvn -T 1C clean deploy -P online -Dmaven.test.skip=true’
- alias mvnc=‘mvn -T 1C clean eclipse:clean idea:clean’
给pom.xml添加Servlet依赖
<!--▽Servlet规范相关▽-->
<!-- servlet API支持 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- jstl支持 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>
<!--△Servlet规范相关△-->
本文地址:https://blog.csdn.net/weixin_47057498/article/details/107892933