一、什么是Maven?
Apache maven 官网: http://maven.apache.org/
Maven3的所有版本的下载地址:https://archive.apache.org/dist/maven/maven-3/
Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。
这是maven的一系列执行流程:
二、maven的安装和配置
Maven的安装,解压maven的安装包即可使用
Maven的目录介绍
Bin:存放执行脚本文件的地方
Boot:存放一些扩展的地方
Conf:maven的核心配置文件存放的路径
Lib:maven的依赖包
maven的配置:
主要的配置文件是 conf >> settings.xml
在配置文件中主要配置以下内容:
1、配置本地仓库的路径
2、可以选择配置阿里云的maven仓库镜像(对于maven仓库的jar下载速度有影响)
<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
3、配置maven的环境变量
MAVEN_HOME=该处填写个人maven的路径E:apache-maven-3.2.1 Path=%MAVEN_HOME%in
4、进行验证
到此说明maven已经安装完毕。
三、maven与eclipse的集成开发
1、如果eclipse没有maven插件,就需要安装插件,打开eclipse验证下
打开window >> preferences >> maven 如果没有maven就需要安装插件 —> 2
2、安装maven插件
打开eclipse点击help-->Install New Software,然后输入要
下载插件的链接地址 http://m2eclipse.sonatype.org/sites/m2e 后回车,勾选择要下载的项,点击下一步进行下载。下载完成会自动安装
速度可能会有些慢,还有第二种离线安装的方法,网络搜索 eclipse-maven-plugin 进行下载
复制到eclipse的安装目录下,如果提示文件夹已经存在,直接合并即可。
3、进行重启验证是否安装成功
4、进行相关配置
配置maven的安装目录
window > preferences > maven >Installations > Add > Directory(选择你的maven目录) > Finsh > Apply 应用即可
配置maven仓库的位置
其中默认选择maven安装目录下的settings.xml,可以自己自定义maven仓库目录(推荐)。
四、在eclipse中进行maven项目的开发
1、java项目工程的开发
这里选择可以跳过maven骨架的设置(推荐)
2、javaweb项目的开发
只是这里的选择是 war
对于maven中的web.xml文件缺失问题,可以使用 项目上右击选择javeEE的工具帮我们创建
每个maven软件项目的管理和工具都在pom.xml中进行配置 详细看 ——> 五
五、maven的核心概念
1、maven中坐标的概念
Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范,拥有了统一规范,就可以把查找工作交给机器
Maven坐标主要组成
• groupId:定义当前Maven项目隶属项目
• artifactId:定义实际项目中的一个模块
• version:定义当前项目的当前版本
• packaging:定义该项目的打包方式
2、maven的依赖管理与依赖范围
如何进行依赖配置?
传递性依赖和可选依赖,排除依赖
其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:
1.compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
2.test:测试依赖范围。只对于测试classpath有效
3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
4.runtime:运行时提供。例如:jdbc驱动
依赖范围对传递依赖的影响
Maven的直接依赖与间接依赖
3、maven 仓库管理
用来统一存储所有Maven共享构建的位置就是maven仓库(简单而言就是项目所需的各种依赖jar包)
Maven仓库布局
• 根据Maven坐标定义每个构建在仓库中唯一存储路径
• 大致为:groupId/artifactId/version/artifactId-version.packaging
仓库的分类
• 本地仓库
~/.m2/repository/
每个用户只有一个本地仓库
• 远程仓库
• 中央仓库:Maven默认的远程仓库
http://repo1.maven.org/maven2
• 私服:是一种特殊的远程仓库,它是架设在局域网内的仓库
4、maven的生命周期
何为生命周期?
• Maven生命周期就是为了对所有的构建过程进行抽象和统一
• 包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤
Maven三大生命周期
• clean:清理项目的
• default:构建项目的
• site:生成项目站点的
• 生命周期Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:
Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
Site Lifecycle 生成项目报告,站点,发布站点。
再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。
5、maven的插件
• Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的
• 每个插件都能实现多个功能,每个功能就是一个插件目标
• Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务
例如:
<build> <plugins> <!-- 配置Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <path>/</path> <port>8086</port> </configuration> </plugin> <!-- maven的源码打包插件 --> <plugin> <artifactId>maven-source-plugin</artifactId> <version>2.4</version> <configuration> <attach>true</attach> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
6、maven的私服
什么是私服?
为什么使用Nexus私服软件?
Nexus安装与使用
Nexus的仓库和仓库组
宿主仓库
代理仓库
仓库组
配置Maven从Nexus下载,部署构建
有关于maven私服的使用较少,想了解的可以参考:
搭建私服那点事:https://www.cnblogs.com/zishengY/p/7794923.html