Maven简介
Maven这个词是“专家”,“内行”的意思,是Apache组织中的一个成功的开源项目。Maven主要服务基于java平台的项目构建,依赖管理和项目信息管理。
无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷开发,Maven都能大显身手。
项目构建工具
Ant构建
最早的构建工具,基于IDE,大概是2000年有的,当时是最流行的java构建工具,不过它的XML脚本编写格式让XML文件特别大。对工程构建过程中的过程控制特别好
Maven【JAVA】
项目对象模型,通过其描述信息来管理项目的构建,报告和文档的软件项目管理工具。它填补了Ant缺点,Maven第一次支持了从网络上下载的功能,仍然采用xml作为配置文件格式。Maven专注的是依赖管理,使用java编写。
Gradle
属于结合以上两个的优点,它继承了Ant的灵活和Maven的生命周期管理,它最后被google作为了Android御用管理工具。它最大的区别是不用XML作为配置文件格式,采用了DSL格式,使得脚本更加简洁。
目前市面上Ant比较老,所以一般是一些比较传统的软件企业公司使用,Maven使用Java编写,是当下大多数互联网公司会使用的一个构建工具,中文文档也比较齐全,gradle是用groovy编写,目前比较新型的构建工具一些初创互联网公司会使用,以后会有很大的使用空间。
Maven的四大特点
Maven的安装配置
典型的Maven项目目录结构,不同的编辑器都一样:
main文件夹下是项目文件,test文件夹下是测试文件
Maven标签定义解释
根目录下的第一个元素ModelVersion指定当前Pom模型的版本,对于Maven3来说,它只能是4.0.0。指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0
groupId定义了项目属于哪个组,这个组往往和项目所在的组织和公司存在关联
比如:com.xxxx
artifactId定义了当前Maven项目在组中唯一的ID
Version x.x.x-里程碑
比如:1.0.0-SNAPSHOT
第一个x 大版本 有重大变革
第二个x 小版本 修复bug,增加功能
第三个x 更新
里程碑版本:
SNAPSHOT(快照,开发版)
alpha(内部测试)
beta(公开测试)
Relase|RC(发布版)
GA(正常版本)
使用name标签声明一个对于用户更为友好的项目名称,虽然不是必须的,但还是推荐为每个Pom声明name,以方便信息交流。
打开maven目录->conf->setting.xml
添加仓库位置配置
<localRepository>C:/JavaHome/m2</localRepository>
注:仓库位置改为自己本机的指定目录,”/”不要写反
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
Maven常用命令
如何在Idea里面配置Maven
注意!Maven的版本不能超过idea的版本!不然会报错
在Idea中新建Maven项目
第一步
第二步 项目名称最好不要有空格,我的截图是错误示范
第三步
编辑器默认可能不会创建resources目录,需要手动创建,并标记
第四步,如何编译
配置好以后,点击任意绿色按钮开始编译
注意,artifactId不能有空格,否则编译会报错!项目名称最好不要有空格
编译成功提示如下:
还可以如法炮制,新增打包命令
然后就可以在编译和打包来回切换了
Maven仓库的基本概念
对于Maven来说,仓库只分为两类:本地仓库和远程仓库。
当Maven根据坐标寻找构建的时候,它首先会查看本地仓库,如果本地仓库存在,则直接使用;如果本地没有,Maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。如果本地仓库和远程仓库都没有,Maven就会报错。
远程仓库分为三种:中央仓库,私服,其它公共库。
中央仓库是默认配置下,Maven下载jar包的地方。
私服是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。内部的项目还能部署到私服上供其他项目使用。
一般来说,在Maven项目目录下,没有诸如lib/这样用来存放依赖文件的目录。当Maven在执行编译或测试时,如果需要使用依赖文件,它总是基于坐标使用本地仓库的依赖文件。
默认情况下,每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录。有时候,因为某些原因(比如c盘空间不足),需要修改本地仓库目录地址。
对于仓库路径的修改,可以通过maven配置文件conf目录下setting.xml来指定仓库路径
<!-- 设置到指定目录中,路径的斜杠不要写反 -->
<setting>
<localRepository>D:/m2/repository</localRepository>
</setting>