【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博客



相关文章
|
存储 Java Maven
|
数据可视化 Java 项目管理
|
数据安全/隐私保护
Maven-2
Maven-2
87 0
|
6月前
|
Java Maven 开发工具
Maven 特点
Maven是一个强大的Java项目管理工具,其特点包括:遵循统一规范的项目设置,支持跨工程共享;具备自动更新依赖的功能,并拥有庞大的库资源;可扩展,允许用户编写Java或脚本插件;几乎无需额外配置即可使用新功能;基于模型的构建系统,能自动生成JAR、WAR等格式的输出;能创建一致性项目站点,包含标准报告和自定义文档;支持发布管理和源代码管理集成;具有向后兼容性,方便旧版本迁移;子项目能继承父项目的依赖;并行构建提升编译效率;提供改进的错误报告,链接到详细解释页面。
|
4月前
|
存储 前端开发 Java
Maven(一)
Maven(一)
79 0
Maven(一)
|
4月前
|
Java 测试技术 程序员
Maven(二)
Maven(二)
44 0
|
6月前
|
Java 应用服务中间件 项目管理
Maven详解
Apache Maven是一个强大的Java项目管理和构建工具,它简化了项目结构、依赖管理、构建过程。Maven遵循约定优于配置原则,提供标准项目模板,自动处理依赖下载和版本控制。通过POM(Project Object Model)文件,开发人员声明项目属性、依赖、构建配置等。Maven支持多模块管理、文档生成、版本管理和构建报告。使用Maven,可以更高效地管理复杂项目,避免手动管理依赖带来的问题。此外,Maven的配置文件(settings.xml)允许设置本地仓库、中央仓库镜像和JDK版本等。
74 1
Maven详解
|
6月前
|
存储 IDE Java
Maven
Maven
51 0
|
7月前
|
存储 Java 关系型数据库
|
Java 测试技术 Maven
maven总结
maven总结
49 0
下一篇
DataWorks