Maven学习笔记
maven是什么:
Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。Maven可以简化和标准化项目建设过程,处理编译,分配,文档和团队协作等的无缝连接。
为什么需要maven
- maven可以管理jar文件
2)自动下载jar和他的文档,源代码
3)管理jar直接的依赖,
4)管理需要的jar的版本
5)可以编译程序,把Java编译为class - 可以测试代码是否正确
7)可以打包文件,形成jar或war - 帮你部署项目
Maven下载和环境配置
下载:http://maven.apache.org/download.cgi
设置环境变量:
完成环境配置之后,cmd 使用mvn -v检测是否成功
然后需要修改一点点配置,使之方便使用,
maven是通过将第三方jar包自动下载到本地的一个空间保存之后使用的,我们称这个地方为本地仓库;
所以我们需要在本地创建一个一个文件夹存放jar包,并通知maven;
存放jar包的文件夹自行创建,然后在Maven根路径找到conf文件夹,打开settings.xml文件,找到setting标签,并在其中
添加一个标签
路径为本地仓库的位置;
然后再来配置远程仓库,这是maven下载jar包的地方,同样在setting.xml中,找到mirrors标签,在其中加入以下内容
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
完成这一步,我们的基础设置就基本完成了
maven的目录结构:
└─src 源码
├─main 主要
│ ├─java java源码
│ │ └─com
│ │ └─woniuxy
│ │ └─build 包名
│ └─resources 资源: 配置文件
└─test 测试相关
└─java
└─com
└─woniuxy
└─build
pom.xml
Maven构建生命周期
Maven 的构建机制,是围绕生命周期(lifecycle)这个概念进行构建的。这意味着构建和发布一个项目的整个过程是预先被定义了的。
Maven 有以下三个标准的生命周期:
▪ clean:项目清理的处理
当我们执行 mvn post-clean 命令时,Maven 调用 clean 生命周期,它包含以下阶段:
▪ pre-clean:执行一些需要在clean之前完成的工作
▪ clean:移除所有上一次构建生成的文件
▪ post-clean:执行一些需要在clean之后立刻完成的工作
mvn clean 中的 clean 就是上面的 clean,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都 会被运行
▪ default(或 build):项目部署的处理
▪ site:项目站点文档创建的处理
Maven的坐标
Maven 通过坐标定位,替代了之前 lib 文件夹中放 jar 包的方式
这样做之后,首先各个模块内省去了 Lib 文件夹导包这一步
同时,对于不同模块之间都会重复用到的 jar 包,除去第一次需要从互联网上中央仓库下载外,其他时刻只需要从本地仓库中下载即可。
这是一种抽取重复类的思想,这种思想在之前的学习种已经见到很多次了,核心部分就是:抽取不同地方复用率高的部分,单独存在,其他部分调用这个存在即可。之前是对代码抽取,这次是对 jar 包抽取
在maven项目中找到 pom.xml文件
groupId:定义当前Maven组织名称
artifactId:定义实际项目名称
version:定义当前项目的当前版本
依赖传递
一种相当常见的情况,比如说 A 依赖于其他库 B。如果,另外一个项目 C 想要使用 A ,那么 C 项目也需要使用库 B。 Maven 可以避免去搜索所有所需库的需求。Maven 通过读取项目文件(pom.xml),找出它们项目之间的依赖关系。 我们需要做的只是在每个项目的 pom 中定义好直接的依赖关系。其他的事情 Maven 会帮我们搞定。
常用命令
▪ mvn archetype:generate 创建Maven项目
▪ mvn compile 编译源代码
▪ mvn deploy 发布项目
▪ mvn test-compile 编译测试源代码
▪ mvn test 运行应用程序中的单元测试
▪ mvn site 生成项目相关信息的网站
▪ mvn clean 清除项目目录中的生成结果 ▪ mvn package 根据项目生成的jar