Maven简介与使用
Maven的介绍
Maven的简介
- Maven是项目管理工具,对软件项目提供构建与依赖管理
- Maven是Apache下的Java开源项目
- Maven为Java项目提供了统一的管理方式,已成业界标准
Maven的特性
- 项目设置遵循统一的规则,保证不同开发环境的兼容性
- 强大的依赖管理,项目依赖组件自动下载,自动更新
- 可扩展的插件机制,使用简单,功能丰富
Maven的安装与配置
Maven的项目标准结构
IDEA创建Maven项目
Create New Project => 左侧项目类型选择“Maven” => Next
Maven的坐标
- GroupId:机构或团体的英文,采用”逆向域名“的方式书写,比如”com.song”
- ArtifactId:项目名称,说明其用途,例如:cms,oa…
- Version:版本号,一般采用“版本号+单词”的形式,例如:1.0.0.RELEASE
Maven项目标准结构
Maven依赖管理
- Maven利用dependency(依赖)自动下载,管理第三方jar
- 在pom.xml文件中配置项目依赖的第三方组件
- Maven自动将依赖从远程仓库下载至本地仓库,并在工程中引用
- 登录远程仓库的检索网站:https://search.maven.org/
- 输入要检索的依赖包,比如 mysql java,然后点击搜索
- 一般来说搜索结果的第一栏就是我们想要的结果,点击版本号查看最新版
- 复制”Apache Maven“中的内容到pom.xml中即可
如果一个依赖里面还存在子依赖,那么Maven会把所有的依赖一次性全部下载
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.song</groupId>
<artifactId>idea-maven</artifactId>
<version>1.0.0-release</version>
<!-- ↓↓↓ 添加的内容 ↓↓↓ -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
</dependencies>
<!-- ↑↑↑ 添加的内容 ↑↑↑ -->
</project>
问题及对策:解决error:java:不支持发行版本5
本地仓库与中央仓库
- maven在项目启动的时候会对pom.xml进行加载,分析里面有哪些依赖
- 在本地仓库中查找这些依赖是否存在(通常就是指jar包)
- 如果有依赖在本地仓库中不存在,那么maven会自动去中央仓库下载该依赖
- 下载到本地仓库之后,maven再去加载该依赖
补充1:查看本地仓库
/Users/chenyisong/.m2/repository
#普通依赖包一般放在com/belerweb
补充2:阿里云maven私有仓库服务
如果我们每次都需要去apach官网提供的中央仓库中下载依赖包,那么有可能速度是很慢的。怎么办呢?我们可以使用阿里云提供的maven私有仓库服务。
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.song</groupId>
<artifactId>idea-maven</artifactId>
<version>1.0.0-release</version>
<!-- ↓↓↓ 添加的内容 ↓↓↓ -->
<repositories>
<repository>
<!-- 创建私服的地址 -->
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
<!-- ↑↑↑ 添加的内容 ↑↑↑ -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
</dependencies>
</project>
项目打包
- Maven可将Java项目打包为jar,war包
- Maven项目打包是通过Plugins(插件)技术实现
- Maven输出Jar包插件:maven-assembly-plugin