1.为什么我们要学习maven
痛点 1:jar 包难以寻找
数量多
痛点 2:jar 包依赖的问题
一个jar中依赖于另一个jar包
痛点 3:jar 不方便管理
按不同的功能管理jar
痛点 4:项目编译
2.什么是maven
maven是apache提供的一款开源的项目构建工具
他用来管理项目中的jar,管理jar之间的依赖关系,完成项目的打包,测试,编译等功能
pom**(Project Object Model 项目对象模型)**
pom.xml是maven项目的核心配置文件
配置项目的基本信息,依赖jar的坐标,插件,如何编译等
坐标
jar在仓库中的地址,groupId(类似于包名)、artifactId(项目名)、packaging(jar,war)、version(版本号) 的组合被称为项目的坐标,它们形 成了项目的唯一标识
仓库(放jar的地方)
放jar的地方,分为:中央仓库(只有一个 apache创建的), 镜像仓库(可以有多个,对中央仓库的备份), 本地仓库(在自己电脑上)
3.maven项目的搭建
-
在官网下载maven http:// maven.apache. org
-
解压到目标文件夹
-
配置环境变量path(D:\Program Files (x86)\apache-maven-3.8.3\bin)
-
打开cmd 输入mvn -version(-前有空格)
-
.配置本地仓库地址 (D:\Program Files (x86)\apache-maven-3.8.3\bin\conf)conf下的setting.xml 修改 D:\mavenrepository
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tZsGTRX3-1636606494842)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1635058596401.png)]
-
配置阿里云镜像仓库 conf文件夹下的setting.xml中
mirror>
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jHxlmzUg-1636606494844)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1635058614477.png)]
-
在idea中设置maven
setting - Build,Exection -Maven
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s1yScHi1-1636606494845)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1635054710222.png)]
-
创建maven项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wf70pinT-1636606494845)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1635054846521.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fymaj8LY-1636606494846)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1635054871437.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FMpT4Bbf-1636606494847)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1635054902289.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vmFAWbEh-1636606494848)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1635058449374.png)]
4.pom.xml的配置
在 Pom.xml 文件配置 jar 包信息(jar包的地址),使用 maven 自动下载 jar包, 管理 jar 之间的依赖
(组名),(构建名)和(版本号):依赖项的基本坐标
:依赖项的 packaging 类型,默认是 jar;
依赖项的作用范围 默认是compile
compile 如果打包为war包,则该依赖包会被拷贝到war包中的lib中
provided 如果打包为war包,则该依赖包不会被拷贝到war包中的lib中
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
5.moven命令
-
mvn compile 编译
-
mvn clean 删除 target
3.mvn package 打包
-
mvn install 把项目install到本地仓库
6.添加jar到moven仓库
mvn install:install-file
-DgroupId=组名(com.ffyc)
-DartifactId=构建名(mysql)
-Dversion=版本(1.0)
-Dpackaging=包类型(jar )
-Dfile=jar包完整路径(D:/mysql.jar)
在命令行执行以下命令,提示 build success 即表示安装成功
-DgroupId=组名(com.taobao)
-DartifactId=构建名(druid)
-Dversion=版本(1.0)
-Dpackaging=包类型(jar )
-Dfile=jar 包完整路径