Maven是一个Java项目管理和构建工具,它可以定义项目结构、项目依赖,并使用统一的方式进行自动化构建,是Java项目不可缺少的工具。 

本章我们详细介绍如何使用Maven。 


一、Maven是什么?

如果每一个项目都自己搞一套配置,肯定会一团糟。我们需要的是一个标准化的Java项目管理和构建工具。

Maven就是是专门为Java项目打造的管理和构建工具,它的主要功能有:

  • 提供了一套标准化的项目结构;
  • 提供了一套标准化的构建流程(编译,测试,打包,发布……);
  • 提供了一套依赖管理机制。

Maven项目结构

一个使用Maven管理的普通的Java项目,它的目录结构默认如下:

a-maven-project
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   └── resources
│   └── test
│       ├── java
│       └── resources
└── target

项目的根目录a-maven-project是项目名,它有一个项目描述文件pom.xml,存放Java源码的目录是src/main/java,存放资源文件的目录是src/main/resources,存放测试源码的目录是src/test/java,存放测试资源的目录是src/test/resources,最后,所有编译、打包生成的文件都放在target目录里。

这些就是一个Maven项目的标准目录结构。

所有的目录结构都是约定好的标准结构,我们千万不要随意修改目录结构。使用标准结构不需要做任何配置,Maven就可以正常使用。

我们再来看最关键的一个项目描述文件pom.xml,它的内容长得像下面:

<project ...>
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.itranswarp.learnjava</groupId>
	<artifactId>hello</artifactId>
	<version>1.0</version>
	<packaging>jar</packaging>
	<properties>
        ...
	</properties>
	<dependencies>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
	</dependencies>
</project>

其中,groupId类似于Java的包名,通常是公司或组织名称,artifactId类似于Java的类名,通常是项目名称,再加上version,一个Maven工程就是由groupIdartifactIdversion作为唯一标识。我们在引用其他第三方库的时候,也是通过这3个变量确定。例如,依赖commons-logging

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

使用<dependency>声明一个依赖后,Maven就会自动下载这个依赖包并把它放到classpath中。

二、Maven和JDK版本支持情况

JDK版本Maven版本支持情况
JDK 1.8Maven 3.3及以上
JDK 9Maven 3.5.0及以上
JDK 10Maven 3.5.3及以上
JDK 11Maven 3.5.4及以上
JDK 12Maven 3.6.0及以上
JDK 13Maven 3.6.1及以上
JDK 14Maven 3.6.2及以上
JDK 15Maven 3.6.3及以上
JDK 16Maven 3.8.1及以上
JDK 17Maven 3.8.3及以上

之前我们使用的maven版本是3.6.3。详细可以参考下面文章进行了解学习:

修改IDEA自带的Bundled (Maven 3)的仓库路径(Maven安装及配置)_idea插件仓库地址-CSDN博客

!!! 为了后续学习JDK17方便,这次我们安装较新版本的Maven作为学习~

三、安装Maven

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

如果你还未安装 JDK,可以参考我们的Java基础-环境篇:JDK安装与环境变量配置jdk8/11/17(保姆式详解)_Siobhan. 明鑫的博客-CSDN博客

若JDK配置完毕,接着按照如下步骤进行~~~

1、检查 Java 安装

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

 ​​​​​​

2、Maven 下载

Maven 下载地址:Maven – Download Apache Maven

不同平台下载对应的包:

系统包名
Windowsapache-maven-3.9.5-bin.zip
Linuxapache-maven-3.9.5-bin.tar.gz
Macapache-maven-3.9.5-bin.tar.gz

maven历史版本:Index of /maven/maven-3 

这里我们直接安装3.9.5的Windows系统版本!

 

3、解压到对应目录

 Maven 下载后,将 Maven 解压到一个没有中文没有空格的路径下,这里我解压到D:\Software\Java\Maven 下面。

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

解压后目录结构如下: 

  • bin:存放了 maven 的命令
  • boot:存放了一些 maven 本身的引导程序,如类加载器等
  • conf:存放了 maven 的一些配置文件,如 setting.xml 文件
  • lib:存放了 maven 本身运行所需的一些 jar 包

四、设置 Maven 环境变量

1、点击高级系统设置,再点击环境变量

2、添加环境变量 MAVEN_HOME: 

 3、编辑变量Path,添加变量值%MAVEN_HOME%\bin

%MAVEN_HOME%\bin


 参考:Maven 环境配置 | 菜鸟教程

系统配置
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是否安装成功

win+R 运行cmd 输入 mvn -version或者mvn -v,如图所示则配置成功

六、配置maven仓库

  • Maven中的仓库是用来存放maven构建的项目和各种依赖的(Jar包)。

1. Maven的仓库分类

  • 本地仓库: 位于自己计算机中的仓库, 用来存储从远程仓库或中央仓库下载的插件和 jar 包,
  • 远程仓库: 需要联网才可以使用的仓库,阿里提供了一个免费的maven 远程仓库。
  • 中央仓库: 在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中 央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件

2、配置本地仓库

1 初始化本地仓库

打开Windows终端输入:

mvn    // 初始化maven

Maven初始化后,会在C盘User文件夹-本地账号文件夹中自动创建.m2文件夹,包含一个空的名为Repository的文件夹。 

 

使用IDEA时,如果不指定自己下载的Maven,idea会默认使用自带的Maven 3(bundle)。

maven 3默认的仓库路径一般是在c盘的用户文件夹中的.m2目录下:

当maven下的pom文件中的依赖逐渐增加时,maven仓库下面的jar包也会渐渐增多。

在这里,我们不推荐将本地仓库存放在C盘,所以我们需要将Repository文件夹删除,保留.m2即可。为了后续方便要给仓库换位置到D盘。

2 新建文件夹作Maven的本地仓库

在C盘之外的一个盘符中创建一个文件夹用来当作Maven的本地仓库

创建在D盘,即在D:\Software\Java\Maven文件下新创建一个文件夹为: Maven-Repository

3 进入Maven安装目录  配置本地仓库

在config文件夹中找到一个settings.xml 配置文件,用Notepad++打开,进行本地仓库的配置 

 在localRepository的注释标签下面添加

  <localRepository>D:\Software\Java\Maven\Maven-Repository</localRepository>

编辑完 ctrl + s 保存一下,先不用急着关闭该文件。 

3、配置中央仓库 

Maven作为项目构建及管理工具是如何管理jar包的。

首先每当我们开发一个项目的时候,需要导入一些项目需要的依赖,也就是相关的jar包,只有导入这些依赖,项目才能正常,高效地运行起来。

当我们需要某一个jar包的时候,我们需要在项目的pom.xml文件中去配置所需要的依赖以进行导入到项目中,则此时,Maven会先去本地仓库中查找是否存在相应的jar包,如果有,配置就能直接用,如果Maven在本地仓库中没有找到,则Maven会去中央仓库中下载相应的jar包存放到本地仓库在进行导入到项目中。

配置中央仓库只需要将下面的一段代码直接复制粘贴到settings.xml文件的<mirrors></mirrors>中即可。

<!-- 阿里云仓库 -->
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>
        http://maven.aliyun.com/nexus/content/groups/public/
    </url>
    <mirrorOf>central</mirrorOf>        
</mirror>

以上为刚下载maven的相关配置。

如果已使用一段时间,需要更改Maven仓库位置,参考文章:

修改IDEA自带的Bundled (Maven 3)的仓库路径(Maven安装及配置)_idea插件仓库地址-CSDN博客


七、IDEA中配置Maven

1 打开IDEA 创建一个新的project

2 打开IDEA 选择File --> Settings --> 搜素maven,查看默认配置

3 修改默认配置配置

4 配置Maven的Runner参数

参数一: -DarchetypeCatalog=internal 解决使用骨架构建Maven项目时候会卡住的问题

参数二: -Dfile.encoding=GB2312 解决Maven工程中控制台输出中文乱码的问题

 

注意事项:

上述配置如果是在settings中进行配置则只会对当前Project生效,后续创建的新的Project不会生效

如果是在New Projects Setup里面的setting for new projects中配置,则会对后续创建的所有新的Project都生效,但是无法对当前项目生效

八、创建Maven工程

在IDEA中配置好maven后, 接下来我们使用maven去快速的去构建一个 JavaWeb项目

1 project创建好以后, 选择创建module

2 创建一个 maven 工程


点击 Next填写项目信息

进行一下修改

创建好的工程,长这个样子

Maven目录说明:

src/main/java          —— 存放项目的.java 文件 
src/main/resources      —— 存放项目资源文件,如数据库的配置文件 
src/test/java         —— 存放所有单元测试.java 文件,如 JUnit 测试类 
target                 —— 项目输出位置,编译后的class 文件会输出到此目录 
pom.xml              ——maven 项目核心配置文件 
1
2
3
4
5
3. Maven工程改造
当前创建的maven项目是一个 普通的Java项目,不是web项目,我们要进行一下改造

在main目录下创建一个webapp文件夹
————————————————
版权声明:本文为CSDN博主「格子衫111」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012660464/article/details/114093066

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐