Maven
介绍
作用
如何使用
细节
Maven
-
什么是Maven?
- 正确发音[ˈmevən],意思是专家,内行的意思.
- Maven是一个项目管理工具,它包含了一个项目对象模型(POM : Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Manmgement System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑.
-
作用:
- 依赖管理:
- Maven工程中不直接将jar包导入到工程中,而是通过在pom.xml文件中添加所需jar包的坐标.
- 在需要用到 jar 包的时候,只要查找 pom.xml 文件,再通过 pom.xml 文件中的坐标,到一个专门用于”存放 jar 包的仓库”(maven 仓库)中根据坐标从而找到这些 jar 包,再把这些 jar 包拿去运行。
- 项目一键构建
- maven 一个命令可以轻松完成项目从编译、测试、运行、打包、安装 ,部署整个过程.
- 依赖管理:
-
如何使用
- 下载 : http://maven.apache.org/download.cgi 选择相应的版本进行下载.
- 安装 : 直接解压缩就算安装成功(目录中不能有中文和空格)
- 设置环境变量
- maven解压后的路径
- 环境变量新建变量名:MAVEN_HOME 变量值: D:\XcRepository\apache-maven-3.5.4
- path中添加%MAVEN_HOME%\bin;
- DOS命令框下输入mvn -v 出现maven版本信息
- 注意: 设置maven环境变量前要确保JAVA_HOME已经设置Ok.
-
细节
- 仓库的分类
- 本地仓库 : 用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包,优先从本地仓库查找.默认本地仓库位置在
${user.dir}/.m2/repository,${user.dir}
表示 windows 用户目录。 - 远程仓库(私服): 如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。
- 中央仓库 : http://repo1.maven.org/maven2 包含了世界上大部分流行的开源项目构件。
- 本地仓库 : 用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包,优先从本地仓库查找.默认本地仓库位置在
- 本地仓库的设置 : MAVE_HOME/conf/settings.xml 文件中配置
<localRepository>本地仓库的路径</localRepository>
- maven项目标准目录结构
- src/main/java目录 : 核心代码部分
- src/main/resources : 配置文件部分
- src/test/java目录 : 测试代码部分
- src/test/resources : 测试配置文件
- src/main/webapp : 页面资源, js.css.图片等等.
- maven常用命令
- mvn clean : maven 工程的清理命令,执行 clean 会删除target 目录及内容。
- mvn compile : maven 工程的编译命令,作用是src/main/java 下的文件编译为 class 文件输出到 target目录下。
- mvn test : maven 工程的测试命令,会执行 src/test/java 和src/main/java下的单元测试类。
- mvn package : maven 工程的打包命令,对于 java 工程执行package 打成 jar 包,对于 web 工程打成 war包。
- mvn instal : maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。
- maven 生命周期
- 清理生命周期 : clean
- 默认声明周期 : compline , test , package , install deploy 执行后边的命令会把之前的命令执行一次,类似于人的不同年龄阶段.
- 站点生命周期
- maven 的概念模型
- 项目对象模型(Project Object Model) : maven 工程都有一个pom.xml 文件,通过 pom.xml 文件定义项目的自身信息、项目运行所依赖的jar包信息、项目运行环境信息 : jdk,tomcat信息等。
groupid : 公司名称
artifactid : 项目名称
version : 版本号
- 项目对象模型(Project Object Model) : maven 工程都有一个pom.xml 文件,通过 pom.xml 文件定义项目的自身信息、项目运行所依赖的jar包信息、项目运行环境信息 : jdk,tomcat信息等。
- 仓库的分类