maven 基础

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
2
export MAVEN_HOME=/Users/ljp/app/maven-3.6.0
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

如上所示,将上述两行代码放在 /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 配置

配置本地仓库路径

  1. 打开conf\settings.xml
  2. 配置本地参考路径
    1
    <localRepository>D:\JAVA\Repository</localRepository>

配置mirrors镜像可以配置多个

  1. 打开conf\settings.xml

  2. 配置本地参考路径<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
2
3
4
5
6
install:install-file -Dfile=<Jar包的地址> 
-DgroupId=<Jar包的GroupId>
-DartifactId=<Jar包的引用名称>
-Dversion=<Jar包的版本>
-Dpackaging=<Jar的打包方式>

命令例子

1
2
mvn install:install-file   -Dfile=java-bloomfilter-1.0.jar  -DgroupId=com.sina  -DartifactId=java-bloomfilter -Dversion=1.0  -Dpackaging=jar
mvn install:install-file -DgroupId=vip.infotech -DartifactId=info -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -Dfile=D:\mvn-jar\info-0.0.3-SNAPSHOT.jar

pom添加依赖

1
2
3
4
5
<dependency>
<groupId>com.sina</groupId>
<artifactId>java-bloomfilter</artifactId>
<version>1.0</version>
</dependency>

文件最终存放路径应该是xxxUser/.m2/repository/com/sina/java-bloomfilter/1.0/

配置打包后文件名称

1
2
3
<build>
<finalName>ABC</finalName>
</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开发

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:清除以前的包后重新打包,跳过测试类

问题

  1. maven被依赖的包中不能配置maven plugin不然会报错找不到程序包

参考