maven基础知识
maven基础知识
目录
- Maven简介
- Manven安装配置
- Maven本地配置
- Maven中央仓库
- Maven依赖机制
- Maven 常用命令
Maven简介
Maven是一个项目管理和综合工具,Maven为开发人员提供了构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设 ,Maven使用标准的目录结构和默认的构建生命周期。
在多个开发团队环境时,Maven可以设置按标准在非常短的时间完成配置工作。由于大部分羡慕的设置都非常简单,并且可以重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
Maven提供了开发人员的方式管理:
- Builds
- Documentation
- Reporting
- Dependencies
- SCMs
- Releases
- Distribution
- mailing list
概括的说,Maven简化和标准化项目建设过程,处理编译分配,文档,团队协作和其他任务的无缝连接。Maven增加可重用性并负责建立相关的任务。
Maven的安装配置
Maven下载安装
先去Maven官网下载Windows的zip文件,然后解压缩到安装目录,并配置Windows环境变量
注意:请尽量使用jdk1.8以上的版本
JDK和JAVA_HOME
确保已安装JDK,并设置JAVA_HOME环境变量到Windows环境变量中,然后再系统环境变量path中配置上maven路径
验证
在cmd中使用命令:mvn -version
输出:
本地仓库
在安装目录下的conf文件夹中有个setting.xml文件,该文件用来配置maven信息,在大概56行的位置写入以下代码:
<localRepository>D:\maven\jar_home</localRepository>
这行代码表示本地仓库的位置,可以自己随意设置本地仓库地址。在这行上面还有几行注释的代码,表示默认本地仓库地址,默认地址为当前用户的home目录下的.m2/repository文件夹下,代码如下:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
Maven中央仓库
当我们建立一个Maven的项目。Maven会检测你的pom.xml
文件,以确定哪些依赖下载,首先,Maven将从本地资源库获取依赖资源,如果没有找到,然后会将从中央仓库http://repol.maven.org/maven2下载依赖到本地仓库,我们也可以进入http://mvnrepository.com进行搜索我们所需的依赖,由于从外网下载依赖很慢,所有我们需要配置阿里镜像,这和npm配置cnpm的阿里镜像的原理是一样的,setting.xml文件第149行左右插入以下代码:
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
Maven依赖机制
Maven依赖机制概念
在Maven依赖机制的帮助下自动下载所有必须的依赖库,并保持版本升级。
传统方式
- 访问http://logging.apache.org/log4j/
- 下载Log4j的jar库
- 复制jar到项目类路径
- 手动将其包含到项目的依赖
- 所有的管理需要一切自己做
如果有Log4j版本升级,则需要重复上述步骤
Maven的方式
- 仅仅需要知道log4j的Maven的坐标,例如:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
如果有Log4j版本升级,只要更新pom.xml中的这个版本号更新就可以了
Maven 常用命令
清除产生的项目
mvn clean
编译源代码
mvn compils
打包
mvn package
只打包不测试(跳过测试)
mvn package -Dmaven.test.skip=true
安装到本地仓库
mvn instail
源码打包
mvn source:jar
或
mvn source:jar-no-fork