ruanjianwei

maven仓库搭建

一.Maven 环境配置

Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK。

如果你还未安装 JDK,可以参考我们的 Java 开发环境配置

1.系统要求

项目 要求
JDK Maven 3.3 要求 JDK 1.7 或以上 Maven 3.2 要求 JDK 1.6 或以上 Maven 3.0/3.1 要求 JDK 1.5 或以上
内存 没有最低要求
磁盘 Maven 自身安装需要大约 10 MB 空间。除此之外,额外的磁盘空间将用于你的本地 Maven 仓库。你本地仓库的大小取决于使用情况,但预期至少 500 MB
操作系统 没有最低要求

2.检查 Java 安装

操作系统 任务 命令
Windows 打开命令控制台 c:\> java -version
Linux 打开命令终端 # java -version
Mac 打开终端 $ java -version

3.Maven 下载

Maven 下载地址:http://maven.apache.org/download.cgi

不同平台下载对应的包:

系统 包名
Windows apache-maven-3.3.9-bin.zip
Linux apache-maven-3.3.9-bin.tar.gz
Mac apache-maven-3.3.9-bin.tar.gz

下载包后解压到对应目录:

系统 存储位置 (可根据自己情况配置)
Windows E:\Maven\apache-maven-3.3.9
Linux /usr/local/apache-maven-3.3.9
Mac /usr/local/apache-maven-3.3.9

4.设置 Maven 环境变量

添加环境变量 MAVEN_HOME:

系统 配置
Windows 右键 "计算机",选择 "属性",之后点击 "高级系统设置",点击"环境变量",来设置环境变量,有以下系统变量需要配置:新建系统变量 MAVEN_HOME,变量值:E:\Maven\apache-maven-3.3.9编辑系统变量 Path,添加变量值:;%MAVEN_HOME%\bin注意:注意多个值之间需要有分号隔开,然后点击确定。
Linux 下载解压:# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz # tar -xvf apache-maven-3.3.9-bin.tar.gz # sudo mv -f apache-maven-3.3.9 /usr/local/编辑 /etc/profile 文件 sudo vim /etc/profile,在文件末尾添加如下代码:export MAVEN_HOME=/usr/local/apache-maven-3.3.9 export PATH=${PATH}:${MAVEN_HOME}/bin保存文件,并运行如下命令使环境变量生效:# source /etc/profile在控制台输入如下命令,如果能看到 Maven 相关版本信息,则说明 Maven 已经安装成功:# mvn -v
Mac 下载解压:$ curl -O http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz $ tar -xvf apache-maven-3.3.9-bin.tar.gz $ sudo mv -f apache-maven-3.3.9 /usr/local/编辑 /etc/profile 文件 sudo vim /etc/profile,在文件末尾添加如下代码:export MAVEN_HOME=/usr/local/apache-maven-3.3.9 export PATH=${PATH}:${MAVEN_HOME}/bin保存文件,并运行如下命令使环境变量生效:$ source /etc/profile在控制台输入如下命令,如果能看到 Maven 相关版本信息,则说明 Maven 已经安装成功:$ mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /usr/local/apache-maven-3.3.9 Java version: 1.8.0_31, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre Default locale: zh_CN, platform encoding: ISO8859-1 OS name: "mac os x", version: "10.13.4", arch: "x86_64", family: "mac"

二.Maven POM

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

  • 项目依赖

  • 插件

  • 执行目标

  • 项目构建 profile

  • 项目版本

  • 项目开发者列表

  • 相关邮件列表信息

在创建 POM 之前,我们首先需要描述项目组 (groupId), 项目的唯一ID。

<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- 模型版本 --> <modelVersion>4.0.0</modelVersion> <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group --> <groupId>com.companyname.project-group</groupId>

<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 --> <artifactId>project</artifactId>

<!-- 版本号 --> <version>1.0</version> </project>

所有 POM 文件都需要 project 元素和三个必需字段:groupId,artifactId,version。

节点 描述
project 工程的根标签。
modelVersion 模型版本需要设置为 4.0。
groupId 这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如,一个银行组织 com.companyname.project-group 拥有所有的和银行相关的项目。
artifactId 这是工程的标识。它通常是工程的名称。例如,消费者银行。groupId 和 artifactId 一起定义了 artifact 在仓库中的位置。
version 这是工程的版本号。在 artifact 的仓库中,它用来区分不同的版本。例如:com.company.bank:consumer-banking:1.0 com.company.bank:consumer-banking:1.1

1.父(Super)POM

父(Super)POM是 Maven 默认的 POM。所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 包含了一些可以被继承的默认设置。因此,当 Maven 发现需要下载 POM 中的 依赖时,它会到 Super POM 中配置的默认仓库 http://repo1.maven.org/maven2 去下载。

Maven 使用 effective pom(Super pom 加上工程自己的配置)来执行相关的目标,它帮助开发者在 pom.xml 中做尽可能少的配置,当然这些配置可以被重写。

使用以下命令来查看 Super POM 默认配置:

mvn help:effective-pom

接下来我们创建目录 MVN/project,在该目录下创建 pom.xml,内容如下:

<project xmlns = "http://maven.apache.org/POM/4.0.0"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">

•    <!-- 模型版本 -->
•    <modelVersion>4.0.0</modelVersion>
•    <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
•    <groupId>com.companyname.project-group</groupId>

•    <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
•    <artifactId>project</artifactId>

•    <!-- 版本号 -->
•    <version>1.0</version>
</project>

在命令控制台,进入 MVN/project 目录,执行以下命令:

```
C:\MVN\project>mvn help:effective-pom
```

Maven 将会开始处理并显示 effective-pom。

```
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:36 min
[INFO] Finished at: 2018-09-05T11:31:28+08:00
[INFO] Final Memory: 15M/149M
[INFO] ------------------------------------------------------------------------
```

Effective POM 的结果就像在控制台中显示的一样,经过继承、插值之后,使配置生效。

<?xml version="1.0" encoding="UTF-8"?>
<!-- ================================================================= -->
<!--                                                                   -->
<!-- Generated by Maven Help Plugin on 2012-07-05T11:41:51             -->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/           -->
<!--                                                                   -->
<!-- ================================================================= -->

<!-- ================================================================= -->
<!--                                                                   -->
<!-- Effective POM for project                                         -->
<!-- \'com.companyname.project-group:project-name:jar:1.0\'             -->
<!--                                                                   -->
<!-- ================================================================= -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/
2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h
ttp://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.companyname.project-group</groupId>
 <artifactId>project</artifactId>
 <version>1.0</version>
 <build>
   <sourceDirectory>C:\MVN\project\src\main\java</sourceDirectory>
   <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
   <testSourceDirectory>C:\MVN\project\src\test\java</testSourceDirectory>
   <outputDirectory>C:\MVN\project\target\classes</outputDirectory>
   <testOutputDirectory>C:\MVN\project\target\test-classes</testOutputDirectory>
   <resources>
     <resource>
       <mergeId>resource-0</mergeId>
       <directory>C:\MVN\project\src\main\resources</directory>
     </resource>
   </resources>
   <testResources>
     <testResource>
       

分类:

技术点:

相关文章:

  • 2021-09-16
  • 2021-11-07
  • 2021-12-14
  • 2021-04-01
  • 2021-09-20
  • 2021-09-10
  • 2021-12-12
猜你喜欢
  • 2021-04-27
  • 2021-04-24
  • 2021-09-05
  • 2021-12-26
  • 2021-05-23
  • 2021-12-11
  • 2021-11-07
相关资源
相似解决方案