一.了解Maven

简介

Maven是由Apache推出的一个开源项目工具,其主要用来对Java项目进行项目构建、依赖管理以及信息管理

为什么使用Maven

在我们开发Java项目时,许多功能要依赖于不同的jar包文件。例如在使用JDBC操作数据库时,要添加mysql连接的驱动jar包。这样目前看起来当然没有问题,但是当我们开发大型项目时,项目依赖的jar包会逐渐增多,就会存在多个项目jar包重复存在、不易于管理jar包的问题,而Maven就是为此而生。

特点

1.依赖管理:Maven可以对第三方jar包进行统一管理,只需要在pom.xml中加入对jar包的依赖描述,Maven会从线上仓库中下载到本地仓库,供所有项目共同使用

2.生命周期:Maven提供了一套项目生命周期管理的标准,使用Maven可以轻松对项目进行:编译,测试,打包,部署,运行

表情包

Maven中对jar包的描述字段

p1-jar包描述

上面是pom.xml中的其中一段依赖信息

字段 描述
groupId 定义当前Maven组织的名称
artifactId 定义项目模块
version 定义当前项目的版本
scope 依赖的范围

获得插件依赖描述可以打开链接:https://mvnrepository.com/

在网站中搜索你需要的jar包,例如"mysql",然后选定你需要的版本,将下方的Maven描述信息复制到pom.xml中的依赖下即可

p2-maven仓库

二.使用Maven

配置镜像源

因为官方Maven的默认镜像源仓库在国外,国内的访问速度较慢,我们需要通过修改maven目录下->conf文件夹->settings.xml

p3-配置国内镜像源

如上图,修改mirror中的url为以下地址

1
2
3
4
5
6
7
8
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

配置本地仓库

这个路径是用来存放从在线仓库下载的jar包,Maven会对本地仓库进行统一管理

修改方法:setting.xml文件中找到localRepository标签,填写本地仓库绝对路径即可

Maven命令行常用操作

(使用idea时在项目工具栏右侧可以找到,双击即可执行命令)

p4-idea中的Maven

mvn clean命令:清除target目录

mvn compile命令:编译,生成target目录

mvn test命令:将测试代码和核心代码一起编译

mvn package命令: 编译测试代码和核心代码并且打包对应的包类型

mvn install命令:编译测试代码和核心代码并且打包对应的包类型并且将生成的包安装到本地仓库

mvn deploy命令: 用于发布项目

打包到服务器运行

当我们编写完一个Java项目后,我们可以将其打成 jar 包,放在服务器上运行。

在软件领域,*JAR*文件(Java归档,英语:Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。

这里推荐使用插件 maven-assembly-plugin 进行打包,

它可以将你的项目打成两份 jar 包,一份是集成了外部依赖的,另一份则没有。

pom.xml文件示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!--打包插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<!--指定主类-->
<mainClass>robot.Robot</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

打包后会得到两个 jar 包,文件名以 with-dependencies 结尾的是集成了所有依赖的。