MAVEN
简介
Maven是Apache下的一个纯Java开发的开源项目,它包含了项目对象模型(POM - Project Object Model),依赖管理系统(Dependency Management System)、和用来运行定义在生命周期阶段中插件(Plugin)目标的逻辑。可以通过一小段描述信息来管理项目的构建、报告、文档的软件项目管理工具。
常见的项目管理工具还有:Ant、Gradle等。
项目构建
项目构建是一个项目从创建到编码、测试、运行、打包、部署的全过程。
传统项目构建
1、创建项目。
2、在项目中编写源码增加配置以及第三方Jar文件等。
3、对源码进行编译。
4、测试(Junit)。
5、打包(war文件)部署至应用服务器(Tomcat)运行。
Maven项目构建
Maven将项目构建的过程进行标准化,每一个阶段使用一个或多个命令组合完成。
依赖管理
一个项目中需要用使用第三方Jar文件(例如SSM框架需要的Jar文件)才可运行,这些第三方Jar文件就是这个项目的依赖Jar文件。
传统项目的依赖管理
传统项目中的依赖管理完全靠人工进行,将Jar文件手动添加到项目中(WEB-INF/lib)。这样会导致没有对Jar文件的统一管理所产生的版本冲突、Jar文件不好下载、过多的Jar文件导致项目臃肿。
Maven项目依赖管理
Maven项目管理所依赖的Jar文件不需要手动向项目内导入Jar文件,只需要在pom.xml(Maven项目的配置文件)中加入Jar文件的坐标,Maven会自动的从Maven仓库中下载Jar文件并且控制Jar文件之间的依赖。
Maven优点
1、Maven对项目的构建进行标准化、使用其相关命令即可完成构建过程。
2、通过在pom中定义坐标从而解决项目中的依赖管理。
3、跨平台(Windows、Linux、Mac OS)。
4、提高开发效率,降低项目的维护成本,且大型项目都采用Maven来构建项目。
下载/安装
版本:Maven3.3以后需要使用jdk7+,目前最新版本为3.5.0(3.4被官方跳过了)。
Windows安装
1、新增环境变量MAVEN_HOME=maven解压目录(bin目录的上层)。
2、在环境变量PATH中增加%MAVEN_HOME%/bin。
3、在CMD中输入mvn -v 输出以下信息表示安装成功。
Eclipse集成Maven
仓库
Maven仓库是简单来说就是Jar文件和插件的仓库,按照所属位置的不同可以分为本地仓库、私服、远程仓库、中央仓库。
本地仓库
用来存储从其它仓库中下载的插件和Jar文件,项目中使用到的插件或Jar文件优先从本地仓库中获得。
远程仓库
如果项目中所需的第三方依赖本地仓库没有,Maven会去远程仓库中寻找下载到本地仓库。远程仓库可以是互联网或局域网。
私服
私服就是公司自己搭建的远程仓库服务器即是公司内部的maven远程仓库。里面不光有第三方的插件和Jar文件,还包括了公司内部的Jar文件或插件。
中央仓库
Maven官方维护的一个远程仓库,里面有非常全的依赖,它包含了世界上绝大部分的开源项目的组件。
Maven依赖流程图
当项目中需要依赖时,Maven首先会从本地仓库中获取。当本地仓库中没有时,Maven会根据配置去远程仓库(可以是私服)中获取。当远程仓库中也没有时会到Maven的中央仓库中获取。
Setting.xml
Maven通过Setting.xml文件来定义Maven的全局环境信息,我们可以通过这个文件来定义和管理Maven。Setting文件一般存在于两个地方:安装目录下的conf内和${user.home}/.m2/内。前者是Maven的全局配置针对整个操作系统使用者生效、后者是用户个性配置。
Maven项目结构(重点)
Maven使用
Eclipse创建Maven项目(重点)
刚创建的WEB项目报错,是缺少web.xml自己补全即可。
依赖配置(重点)
向Maven项目中添加项目依赖需要在POM.xml中配置依赖坐标。
坐标
Maven定位依赖都是根据坐标在仓库中确定一个唯一的文件。
坐标三要素
1、groupId:组织ID。
2、artifactId:项目名。
3、version:版本号。
定位规则(了解)
LocalPath(本地仓库位置)/groupId/artifactId/version/artifactId- version.packaging
POM
<dependencies>标签是Maven POM中的依赖管理标签。
<dependency>标签内配置每个依赖的坐标。
坐标网址:https://mvnrepository.com/
常见命令(了解)
1、编译命令:mvn compile
2、清理命令:mvn clean
3、测试命令:mvn test
4、打包命令:mvn package
5、安装命令:mvn install
6、运行tomcat:tomcat/tomcat7:run(tomcat7插件使用tomcat7:run)
Eclipse运行Maven命令(重点)
Maven命令创建项目(重点)
Java项目:
mvn archetype:generate -DgroupId=com.dj.demo -DartifactId=Maven_Java_demo01 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false |
WEB项目:
mvn archetype:generate -DgroupId=com.dj.demo -DartifactId=Maven_Java_demo01 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false |