文章目录
二,maven
–1,概述
是一个用来项目构建工具,用来管理项目中用到的jar包.
Maven的核心: 下载jar包 + 存放jar包 + 编译jar包
pom模型,引入了“仓库”、“依赖”、“坐标”和“命令”。
四大特征:
1.仓库 repository
远程仓库/中央仓库: 本质上就是一个国外的网址
镜像仓库: 就是一个国内的网址,比如:阿里云
本地仓库: 需要你在磁盘中创建一个文件夹,存放下载好的jar包
2.坐标: 唯一定位jar包的方式.
groupId是组id,通常他的值是公司的域名
artifactId是项目id,通常他的值是项目名称
version是jar包的版本号
3.依赖: jar包之间也有复杂的依赖关系, maven可以下载所有关联的jar包
4.命令mvn cmd:Maven借鉴前辈定义了一套生命周期。共有3个生命周期:clean、default、site,每个生命周期包含多个阶段phase。
常用命令:
- clean 清理
- compile 编译
- test 测试
- site 站点文档
- package 打包jar、war
- deploy 部署到私服
- install 安装jar到本地仓库中
- run 运行
每个周期中运行一个命令时,在这个周期里的其他在该命令之前的phase步骤都会执行。
–2,使用步骤
Maven官网:
1.解压maven的压缩包,建议解压到一个maven专门的包
2.找到settings.xml文件(在D:\apache-maven-3.6.3\conf里),修改两处:
本地仓库: 存放jar包的位置,自己指定一个磁盘路径(apache-maven同包)
镜像仓库: 下载jar包的网址,阿里云
<!--阿里私服地址-->
<mirror>
<id>ali</id>
<name>ali Maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public/</url>
</mirror>
–3,IDEA里整合Maven
1.File–Settings—给当前的工程配置maven
2.File–New Projects Settings—给所有的新工程统一配置maven
3.Build,Execution…—Build Tools—Maven
4.配置如图
–4,IDEA里创建Maven工程
File–New–Project–选择Maven–next–设置工程名/groupId–Finish
–5,修改pom.xml文件,添加jar包的坐标
<?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是组id,值是域名 -->
<groupId>cn.tedu</groupId>
<!--artifactId是组项目id,值是项目名称 -->
<artifactId>cgb2108maven01</artifactId>
<!--version是项目的版本号-->
<version>1.0-SNAPSHOT</version>
<!--pom里可以添加jar包,maven自动去镜像仓库下载jar包到本地仓库-->
<dependencies>
<!--添加MySQL的jar包,groupId,artifactId,version-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
</dependencies>
</project>
–6,检查是否下载完成
原则:pom文件里i没有飘红就行
–7,总结
1.解压maven的压缩包
2.找到settings.xml文件,修改了本地仓库和镜像仓库
3.在IDEA里创建Maven工程
4.给Maven工程配置Maven,否则都用的默认位置,jar包会下载到C盘
5.修改pom.xml , 添加jar包的坐标
6.点刷新按钮,下载jar包
7.只要pom.xml文件里没有飘红就行了
三,IDEA里创建SpringBoot项目
–1,测试
改一下下载jar包的网址 https://start.aliyun.com
常见问题
搜索maven依赖的坐标
查询最新版本和坐标 http://search.maven.org/
执行maven命令时内存溢出
在使用maven时,如果报内存溢出,如使用 mvn site会耗费大量内存,则修改默认配置。
D:\javaenv\apache-maven-3.0.5\bin\mvn.cmd
在@REM set MAVEN\_OPTS=……后加入
set MAVEN\_OPTS= -Xms128m -Xmx512m
版权导致jar远程仓库中没有
例如oracle、全文检索的IKAnalyzer分词器、Dubbox等。
解决办法:按maven坐标手动创建目录结构,将jar单独下载,放入其中。
下载中断
远程仓库为国外网站,又是众矢之的,全球都到哪里下载。常会因为网络故障导致jar下载不完全:
jsp-api-2.1.jar.lastUpdated --没下载全,不能用,用时会报错
mysql-connector-java-5.1.48.jar –下载OK的,才可以用
遇到这样的情况:
- 可以等待网络比较好的时候再下载
- 可以拷贝别人的仓库
- 如果只是个别jar包,可以到jar的官网下载后,然后手动配置
最恶劣的一种情况,下载出异常,也就是pom.xml会提示jar包有问题,可到maven本地仓库,jar也存在。这时可以打开jar包,看是否能打开。如果打不开,则删除,触发maven重新下载。
避免上网下载这么多jar
注意: Maven不同的myeclipse/eclipse,myclipse的maven的插件会调用不同版本的jar。不会缺少业务使用的jar。
Maven命令实际是一个jar包,运行前必须需下载maven的插件,运行时判断如果不存在会自动下载。
Maven仓库死活不对之绝招
拷贝环境没问题的 同学的配置文件 和 仓库 。
版本号共享
通常在项目中,我们会同时依赖同一个构件的不同模块,如 spring-orm-3.2.0,spring-context-3.2.0,且多个模块版本相同,为了维护和升级方便,我们可以对其同一管理,这时可以使用到 Maven 属性,类似于变量的概念。
<!-- 集中定义依赖版本号 -->
<properties>
<junit.version>4.10</junit.version>
<spring.version>4.1.3.RELEASE</spring.version>
</properties>
<!--引用的地方 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>命令插件
一键部署,执行每个命令会自动调用前面的命令。可以一次执行多个命名。只能执行本生命周期中的前面的命令。
每个maven命令就是一个jar,一个maven插件。在第一次运行时下载。