01Maven简介与安装

Maven简介与安装

何为Maven

什么是maven?

Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。

使用Maven的好处?

  1. 项目构建:自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。Maven抽象了一个完整的构建生命周期模型;标准化构建过程。
  2. 依赖管理:通过坐标系统准确地定位每一个构件(artifact),也就是通过一组坐标Maven能够找到任何一个Java类库(如jar文件)。
  3. 项目信息管理:管理项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等。除了直接的项目信息,通过Maven自动生成的站点,以及一些已有的插件,还可以轻松地获得项目文档、测试报告、静态分析报告、源码版本日志报告等非常具有价值的项目信息。
  4. 为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源类库。
  5. 对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置。

为什么选择Maven

什么是Make?和Make的对比?

Make也许是最早的构建工具,具体不详,没用过,可以不了解.Make的强大之处在于它可以利用所有系统的本地命令,尤其是UNIX/Linux系统,丰富的功能、强大的命令能够帮助Make快速高效地完成任务。

对比:

  1. 使用Make,就不能实现(至少很难)跨平台的构建,这对于Java来说是非常不友好的
  2. Makefile的语法也成问题,很多人抱怨Make构建失败的原因往往是一个难以发现的空格或Tab使用错误。

什么是Ant?和Ant的对比?

可以将Ant看成是一个Java版本的Make,也正因为使用了Java,Ant是跨平台的。此外,Ant使用XML定义构建脚本,相对于Makefile来说,这也更加友好。

对比:

  1. 和Make一样,Ant也都是过程式的,开发者显式地指定每一个目标,以及完成该目标所需要执行的任务。针对每一个项目,开发者都需要重新编写这一过程,这里其实隐含着很大的重复。Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的,开发者只需要声明项目的基本元素,Maven就执行内置的、完整的构建过程。这在很大程度上消除了重复。

安装

目录结构和内容?

  • Bin:该目录包含了mvn运行的脚本,这些脚本用来配置Java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。
  • Boot:maven默认的类加载器,相对于默认的java类加载器,它提供了更丰富的语法以方便配置。
  • Conf:该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制Maven的行为。
  • Lib:该目录包含了所有Maven运行时需要的Java类库

什么情况下需要设置代理?

  1. 提高访问速度:通常代理服务器都设置一个较大的缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  2. 隐藏真实身份:上网者也可以通过代理服务器隐藏自己的真实地址信息,还可隐藏自己的IP,防止被黑客攻击。
  3. 突破限制:有时候网络供应商会对上网用户的端口,目的网站,协议,游戏,即时通讯软件等的限制,使用代理服务器都可以突破这些限制。
  4. 安全认证

如何设置代理?

在setting.xml中配置:

1
2
3
4
5
6
7
8
9
10
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>

mvn命令实际上是一个java进程,当项目较大时,如果运行内存不足,也会出现异常,怎么处理?

使用Mvn命令时设置MAVEN_OPTS环境

配置用户所属的setting.xml文件的好处?

  1. 避免影响其他用户
  2. conf下的setting.xml每次更新就会重置

使用IDE自带的Maven会有什么问题?

  1. 自带的通常比较新,不一定很稳定
  2. ide中的Maven和命令行的Maven版本如果不一定,可能会出现构建问题

本文标题:01Maven简介与安装

文章作者:Sun

发布时间:2019年12月24日 - 11:12

最后更新:2020年01月08日 - 16:01

原始链接:https://sunyi720.github.io/2019/12/24/Maven/01Maven简介与安装/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。