maven安装

基于zip压缩包安装

直接官网上下载zip解压即可使用

配置环境变量

1
2
3
4
5
6
7
8
9
#使用maven之前,你必须得有java运行环境(具体安装不进行展开)
#编辑当前用户的环境配置
$vim /etc/profile
#添加:
export PATH=maven安装目录:$PATH
#比如:export PATH=/Users/wyc/company/apache-maven-3.3.9/bin:$PATH
#运行:
mvn --version
#检测安装是否成功

maven配置

maven默认本地仓库路径:~/.m2/repository

maven配置文件路径:maven安装目录/conf/setting.xml

正如前面所说的,maven可以在配置文件setting.xml中更改本地库的配置:

1
<localRepository>自定义的路径</localRepository>

setting.xml中的配置项

简单项

  • localRepository - 本地仓库配置
  • interactiveMode - 交互模式,默认是true,需要和用户交互来获取输入
  • usePluginRegistry - 是否使用maven默认的文件来管理插件版本,默认值是false
  • offline - 构建系统是否需要在离线情况下运行,默认是false
  • pluginGroups - 插件组,使用某个插件,但在命令行中没有提供groupId是maven会使用该列表中的插件组

    服务器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #基本配置如下:
    <servers>
    <server>
    <id>server001</id>
    <username>my_login</username>
    <password>my_password</password>
    </server>
    </servers>
    #server配置中的id与pom文件中distributionManagement中仓库配置的id一致
    #username/password分别是登录仓库所需的账号和密码

镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
#基本配置如下:
<mirrors>
<mirror>
<id>planetmirror.com</id>
<name>PlanetMirror Australia</name>
<url>http://downloads.planetmirror.com/pub/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
#id表示镜像的唯一标识符
#url表示镜像的地址,比如阿里的镜像:http://maven.aliyun.com/nexus/content/groups/public/
#mirrorOf表示被镜像的服务器id,这边表示被镜像的是中央仓库
#配置该配置,maven构建时会优先考虑从镜像下载构件

Profiles - 属性

1
2
3
4
5
6
#基本配置如下:
<properties>
<aaa>1</aaa>
<bbb>2</bbb>
</properties>
#其他上下文可以通过${aaa}获取属性的值,用法和pom文件中的用法一致

Profiles - 仓库和插件仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
基本配置如下:
<repositories>
<repository>
<id>codehausSnapshots</id>
<name>Codehaus Snapshots</name>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<url>http://snapshots.maven.codehaus.org/maven2</url> <layout>default</layout>
</repository>
</repositories>
  • releases, snapshots
    这里配置了两种构件,发布版(Release)和快照版(Snapshot)的策略。有了 这两组配置,POM就可以在每个单独的仓库中,为每种类型类型的构件采取不同 的策略。例如,可能有人会决定只为开发的目的开启对快照版本下载的支持
  • enabled
    true或者false表示该仓库是否为某种类型构件(发布版或者快照版)开启
  • updatePolicy
    该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的 选项是:always(一直),daily(默认,每日),interval:X(这里X是以分 钟为单位的时间间隔),或者never(从不)
  • checksumPolicy
    当Maven将构件部署到仓库中时,它也会部署对应的校验和文件。当没有校验和 文件,或者该文件不正确时,你的选项有ignore(忽略),fail(失败),或者 warn(警告)
  • layout
    在上面的仓库描述中,它们都遵循一个共同的布局。大部分情况都是这样。Maven 2为其仓库提供了一个默认的布局;然而,Maven 1.x有一种不同的布 局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)

maven仓库的概念

笼统的说,maven仓库大致可以分为以下4种:

  • 本地仓库 —— 用来服务本地所有pom工程
  • 私服 —— 最典型的例子,nexus,用于服务局域网中的pom工程
  • 中央仓库 —— 世界各地所有的pom工程
  • 仓库镜像 —— 为了减小中央仓库的压力,和加快各地下载的速度
显示 Gitment 评论