maven作用
简单理解为一个项目构建工具。
比如:一个Java项目,需要使用JDBC连接mysql,这是就需要在这个项目的lib目录下加入mysql的驱动jar包,这里只需要一个jar就够了,因为mysql的驱动包不需要其他依赖。假如项目使用了Spring、Hibernate等框架,这里需要加入lib的jar包就不止一个了,而且手动加入jar容易产生冲突,maven就很好的解决了这个问题。
maven里面常用的概念
- 项目(工程):maven项目
- 模块:maven模块
- 依赖:该项目需要使用的第三方jar
- 插件:项目编译、打包需要执行其他操作,就需要添加插件
- 远程仓库(镜像)、本地仓库:maven会从远程仓库将第三方Jar下载到本地,生成本地仓库,如果本地仓库已经存在该Jar,则使用本地仓库,不会再从远程仓库下载。
maven环境搭建,记得先配置好JDK
下载maven的安装包,这里以Windows为例,Linux类似,下载地址:https://maven.apache.org/download.cgi
解压,解压目录如下
配置环境变量,将bin加入path,记得将路径改成自己本地所在路径
MAVEN_HOME=C:\supermap\tools\maven\apache-maven-3.6.3
path=%MAVEN_HOME%\bin
验证
mvn -v
settings.xml常用配置
在${MAVEN_HOME}/conf目录下,编辑settings.xml,这就是maven工具的配置文件
<!-- 配置本地仓库路径 -->
<localRepository>C:\tools\maven\apache-maven-3.6.3\conf\repository</localRepository>
<!-- 配置阿里云镜像,默认是从中央仓库下载,速度较慢 -->
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<!-- 配置jdk1.8 -->
<profiles>
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
<profiles>
pom.xml依赖
这里使用idea工具构建maven项目
设置settings.xml路径,idea会自动读取本地仓库,File >> Settings
新建maven模块:File >> New >> Module
第一次构建会比较慢,需要耐心等待,构建完成后目录结果如下。
-
src/main/java:Java源码
-
src/main/resources:资源文件,properties、xml等
-
src/test/java:测试源码
-
pom.xml:maven项目文件
编辑pom.xml,添加依赖
<?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.demo.maven</groupId>
<!-- 当前项目唯一ID -->
<artifactId>demo-maven</artifactId>
<!-- 当前项目的版本号 -->
<version>1.0-SNAPSHOT</version>
<!-- 打包方式,常见的打包方式有:jar、war、pom -->
<packaging>jar</packaging>
<!-- 添加依赖 -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.59</version>
</dependency>
</dependencies>
</project>
如果记不住依赖怎么添加,https://mvnrepository.com/查询,或者百度搜索关键字"maven repo"
验证,在src/main/java新建类,看mysql的驱动类是否添加进来,编译不报红,代表mysql的依赖已经加入到当前工程了。