【Maven】初识

简介: 【Maven】初识

一、概念:


1、Maven是一跨平台的项目管理工具,在Windows,Linux或Mac上都可以使用同样的命令。


  2、Maven 的主要作用是帮我们自动化、标准化构建项目,从清理、编译、测试到生成报告,再到打包和部署。Maven最大化的消除了构建的重复,抽象了构建声明周期,并且为绝大部分的构建任务提供了已有的插件,我们不在需要定义过程,甚至不需要再去实现这些过程中的一些任务。


  3、Maven还是一个依赖管理工具和项目信息管理工具:我们在开发过程中借用第三方的开源类库时,可以通过依赖的方式将类库引用到项目中。但随着依赖的增多,版本不一致,版本冲突,依赖臃肿等问题都会接踵而来。Maven通过一个坐标系统准确定位每个构件(artifact),也就是通过一组坐标Maven能够找到任何一个java类库(如jar文件),解决了人们手工处理依赖问题的烦恼。坐标包括group ID,artifactID和 version。打开任意Maven项目的pom文件,都可以看见这些坐标。


关于pom:maven pom文件详解


来自 <http://www.blogjava.net/hellxoul/archive/2013/05/16/399345.html>


  4、Maven提供了免费的中央仓库帮我们自动下载构件。通过Maven的衍生工具(如Nexus),我们能对其进行快速搜索。只要定位坐标,Maven就能帮我们自动下载,省去手工劳动。


  5、与Maven类似的工具还有:Make,Ant。但因为Maven的可跨平台的构建,简单的语法,内置依赖管理,拥有全世界最多的java开源软件包的中央仓库,用户无需进行任何配置就可以直接享用等优点,使得Maven脱颖而出。


二、安装Maven后产生的一些文件:


~/.m2:在用户目录下可以发现.m2文件夹。默认情况下,该文件夹下放置了Maven本地仓库.m2/respository。所有的Maven构件都被存储到该仓库,以便重用。


  如果所在公司基于安全因素考虑,要求使用通过安全认证的代理访问因特网。这种情况下,需要为Maven配置Http代理,才能让它正常访问外部仓库,以下载所需资源。


三、Maven安装最佳实践:


1、设置Maven_OPTS环境变量


  根据Maven安装目录,我们了解到,运行mvn命令实际上是执行了Java命令,既然运行java,运行java命令可用的参数当然也应该在运行mvn命令时可用。这时候,MAVEN_OPTS环境变量就能派上用场。


  配置参考:


  1)设置MAVEN_OPTS环境变量


  通常需要设置MAVEN_OPTS的值为-Xms128m-Xmx512m,因为Java默认的最大可用内存往往不能够满足Maven运行的需要,比如在项目较大时,使用Maven生成项目站点需要占用大量的内存,如果没有该配置,则很容易得到java.lang.OutOfMemeoryError。因此,一开始就配置该变量是推荐的做法。


 


  2)Maven 环境变量设置



  2、配置用户范围的settings.xml


  Maven用户可以选择配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml。前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。


推荐使用用户范围的settings.xml,主要是为了避免无意识地影响到系统中的其他用户。如果有切实的需求,需要统一系统中所有用户的settings.xml配置,当然应该使用全局范围的settings.xml。


除了影响范围这一因素,配置用户范围settings.xml文件还便于Maven升级。直接修改conf目录下的settings.xml会导致Maven升级不便,每次升级到新版本的Maven,都需要复制settings.xml文件。如果使用~/.m2目录下的settings.xml,就不会影响到Maven安装文件,升级时就不需要触动settings.xml文件。


   来自 <http://book.51cto.com/art/201011/234381.htm>



3、不要使用IDE内嵌的Maven


  eclipse中有内嵌的maven,这个内嵌的maven通常会比较新,但不一定很稳定,而且往往会和在命令行使用的maven不是同一个版本。通常会存在两个潜在的问题:


1)较新的maven存在很多不稳定因素,容易造成一些难以理解的问题


2)除了IDE,也经常会使用命令行的maven,如果版本不一致容易造成构建行为的不一致。


来自 <https://blog.csdn.net/miss_yinghao/article/details/78782489>


 


   参考:


  《Maven 实战》许晓斌


   上述链接的CSDN博客



相关文章
|
数据安全/隐私保护
Maven-2
Maven-2
84 0
|
1月前
|
Java API 项目管理
Maven的使用
Maven的使用
33 2
|
5月前
|
存储 IDE Java
Maven
Maven
44 0
|
Java 数据库连接 Maven
Maven介绍
Maven介绍
92 0
|
6月前
|
存储 XML Java
maven
maven
342 0
|
Java 项目管理 Maven
|
Java 测试技术 应用服务中间件
【Maven】了解
【Maven】了解
|
Java Maven Android开发
eclipsp整合maven
eclipsp整合maven
127 0
eclipsp整合maven