Maven的出现就是为了简化项目的构建,提供软件构建的最佳实践。使用maven(POM)管理项目的构建,类似于前端开发中用的NPM
命令去远程仓库下载安装依赖。Java是通过maven实现从远程仓库中下载依赖的包。Maven是基于项目对象模型,可以通过简单的描述信息来管理项目的构建,提供了报告和文档的软件项目管理工具。Maven能够很方便的管理项目报告,生成站点,管理依赖包等。还提供了自行编写插件扩展功能的能力
apache maven与apache ant的区别:
Maven 和 Ant 虽然都算构建工具但是是针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 从 Ant 借用了大多数构建内容,maven的定位是软件项目管理。
ant需要编写大量构件脚本。相比ant,maven新增的功能有:
- 使用Project Object Model(POM)管理软件项目
- 内置了很多的隐式规则,使得构建文件更加简单容易
- 内置依赖管理和Repository来实现依赖的管理和统一存储,可以看到github上的maven开源项目的工程明显变少,不用把依赖包也上传至github
- 内置软件构建生命周期管理功能
下载
进入 apache maven 官网下载页面 点击 apache-maven-3.6.0-bin.zip 进行下载下载
安装
Linux 安装
将 maven 解压到某个目录中,配置一下环境变量即完成安装,环境变量的配置与 JDK 的配置方式类似,配置两个环境变量即可。以下是 linux 系统下的配置示例:
1 | export MAVEN_HOME=/Users/ljp/app/maven-3.6.0 |
如上所示,将上述两行代码放在 /etc/profile 或者 ~/.bash_profile 文件之中即完成了 maven 的安装。
最后,打开控制台输入如下命令检查 maven 是否安装成功,安装成功会显示 maven 版本号:
1 | mvn -v |
windows 安装
第一步:解压apche-maven-3.6.0.rar
第二步:把这个文件放在C:\Program Files\apache-maven-3.6.0
第三步:进行环境变量配置(右键计算机 → 点击属性 → 高级系统设置 → 高级 → 环境变量(打开))
第四步:新建
变量名:MAVEN_HOME
变量值:C:\Program Files\apache-maven-3.6.0
第五步:编辑PATH系统变量
注:在添加变量值的时候,会发现path有很多变量值,怎么操作?
点击键盘END键,让光标移动到属性值最前边,首先打一个分号(英文的分号;)之后添加属性值,最后点击确定,如果是Win10操作系统直接添加参数项变量名:Path
变量值:%MAVEN_HOME%\bin;
第六步:配置完成,确定并应用
第七步:验证Maven是否安装成功
用键盘输入 win+R 弹出运行
在运行框中输入 cmd
之后输入 mvn –v
提示:出现Apche Maven 3.6.0表示成功
Maven 配置
配置本地仓库路径
- 打开
conf\settings.xml
- 配置本地参考路径
1
<localRepository>D:\JAVA\Repository</localRepository>
配置mirrors镜像可以配置多个
打开
conf\settings.xml
配置本地参考路径
<mirrors>
下创建:1
2
3
4
5
6<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>阿里云镜像地址获取:https://developer.aliyun.com/mvn/guide
配置profiles
profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。
- 全局的profile配置。全局的profile是定义在Maven安装目录下的
conf/settings.xml
- 针对于特定用户的profile配置,我们可以在用户的settings.xml文件中定义profile。该文件在用户家目录下的
.m2
目录下 - 针对于特定项目的profile配置我们可以定义在该项目的pom.xml中
maven项目中添加自己开发的jar包
命令参数介绍
1 | install:install-file -Dfile=<Jar包的地址> |
命令例子
1 | mvn install:install-file -Dfile=java-bloomfilter-1.0.jar -DgroupId=com.sina -DartifactId=java-bloomfilter -Dversion=1.0 -Dpackaging=jar |
pom添加依赖
1 | <dependency> |
文件最终存放路径应该是xxxUser/.m2/repository/com/sina/java-bloomfilter/1.0/
配置打包后文件名称
1 | <build> |
设置打包jar还是war
1 | <packaging>war</packaging> |
配置Eclipse Maven
eclipse 本身自带一个嵌入的 maven,但嵌入的 maven 使用并不可靠,也不方便,例如在控制台无法使用 maven 的命令行进行操作。所以一定不要使用 eclipse 嵌入的 maven。以下以简要介绍一下配置方式
打开配置主窗口,点击左侧的 Maven 下的 Installatioins 子菜单
点击上图中的 add 按钮会弹窗口
点击上图中的 Directory 选择 maven 解压到的那个目录,勾选刚刚添加的 maven,并去掉其它两个 maven 的勾选项,只保留刚刚安装的那个勾选
最后再点击左侧的 User Settings 菜单,然后分别点击右边两个的 Browe 按钮,为其配置好两个 settings.xml 文件即可,这两个文件在 maven 安装目录的 conf 子目录之下
点击 ok 按钮完成配置
配置IDEA Maven
- File→Setting→Build→Maven
- 出错可以尝试删除仓库内容重新下载
- 还可以在项目的
.pom
文件中配置使用的镜像仓库
Maven开发
常用命令
- mvn compile 编译源代码
- mvn deploy 发布项目
- mvn test 运行应用程序中的单元测试
- mvn clean 清除项目目录中的生成结果
- mvn package 根据项目生成的jar
- mvn install 在本地Repository中安装jar
- mvnjetty:run 启动jetty服务
- mvntomcat:run 启动tomcat服务
- mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类
问题
- maven被依赖的包中不能配置maven plugin不然会报错找不到程序包