1 Maven介绍
1.1 项目开发中遇到的问题
1、都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行?
2、为什么在我的机器上可以正常打包,而配置管理员却打不出来?
3、项目组加入了新的人员,我要给他说明编译环境如何设置,但是让我挠头的是,有些细节我也记不清楚了。
4、我的项目依赖一些jar包,我应该把他们放哪里?放源码库里?
5、这是我开发的第二个项目,还是需要上面的那些jar包,再把它们复制到我当前项目的svn库里吧
6、现在是第三次,再复制一次吧 ----- 这样真的好吗?
7、我写了一个数据库相关的通用类,并且推荐给了其他项目组,现在已经有五个项目组在使用它了,今天我发现了一个bug,并修正了它,我会把jar包通过邮件发给其他项目组
-----这不是一个好的分发机制,太多的环节可能导致出现bug
8、项目进入测试阶段,每天都要向测试服务器部署一版。每次都手动部署,太麻烦了。
1.2 什么是maven
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven是跨平台的项目管理工具,它是使用java开发的,它要依赖于jdk1.6及以上。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。
Maven主要有两个功能:
1、项目构建
2、依赖管理(jar包)
1.3 项目构建介绍(多工程项目)
1.3.1 什么是构建
构建过程:
1.3.2 项目构建的方式
1、Eclipse
手工操作较多,项目的构建过程都是独立的,很难一步完成。比如:编译、测试、部署等。
开发时每个人的IDE配置都不同,很容易出现本地代码换个地方编译就出错
2、Ant
Ant只是一个项目构建工具,它没有集成依赖管理。
Ant在进行项目构建时,它没有对项目目录结构进行约定,需要手动指定源文件、类文件等目录地址。同时它执行task时,需要显示指定依赖的task,这样会造成大量的代码重复。
它是一个专门的项目构建工具,它可以通过一些配置来完成项目构建,这些配置要明确的告诉ant,源码包在哪?目标class文件应该存放在哪?资源文件应该在哪
3、Maven
Maven不仅是一个项目构建工具,更是一个项目管理工具。它在项目构建工程中,比ant更全面,更灵活。
Maven在进行项目构建时,它对项目目录结构拥有约定,知道你的源代码在哪里,类文件应该放到哪里去。
它拥有生命周期的概念,maven的生命周期是有顺序的,在执行后面的生命周期的任务时,不需要显示的配置前面任务的生命周期。例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程
使用maven,可以对项目进行快速简单的构建,它不需要告诉maven很多信息,但是需要安装maven去的规范去进行代码的开发。也就是说maven是有约束的。 --工程目录固定
1.4 Maven模型
2 Maven安装配置
2.1 下载maven
本课程使用的maven的版本为3. 5.0
Maven是使用java开发,需要安装jdk1.6以上,推荐使用1.7
2.2 Maven的安装(windows)
2.2.1 第一步:安装jdk
安装jdk,要求1.6或以上版本。
2.2.2 第二步:
把maven解压缩,解压目录最好不要有中文。
2.2.3 第三步:配置环境变量
1.配置环境变量MAVEN_HOME
E:\maven\apache-maven-3.5.0
2.配置环境变量PATH,将%MAVEN_HOME%\bin加入Path中,在Windows中一定要注意要用分号;与其他值隔开。
2.2.4 第四步:验证是否安装成功
打开cmd窗口,输入mvn –v
2.3 Maven的配置文件
Maven有两个settings.xml配置文件,一个是全局配置文件,一个是用户配置文件。
2.3.1 全局配置(默认)
%MAVEN_HOME%/conf/settings.xml 是maven全局的配置文件。
在maven安装目录的conf里面有一个settings.xml文件,这个文件就是maven的全局配置文件。
该文件中配置来maven本地仓库的地址
该配置文件中配置了本地仓库的路径,默认就是:~/.m2/repository。其中~表示当前用户路径C:\Users\[UserName]。
localRepository:用户仓库,用于检索依赖包路径
2.3.2 用户配置(推荐)
~/.m2/settings.xml是用户的配置文件(默认没有该文件,需要将全局配置文件拷贝过来在进行修改),
注意:一般本地仓库的地址不使用默认配置,通常情况下需要在用户配置中,配置新的仓库地址。
配置步骤如下:
第一步:创建一个本地仓库目录,比如E:\maven\ repository \repository。
第二步:复制maven的全局配置文件到~/.m2目录下,即创建用户配置文件;也就是将全局也改为用户配置
第三步:修改maven的用户配置文件。
注意:
用户级别的仓库在全局配置中一旦设置,全局配置将不再生效,转用用户所设置的仓库,否则使用全局配置文件中的默认路径仓库。
3 指定阿里云仓库
<!-- 阿里云仓库 -->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>