Maven

Maven简介

Maven是什么

Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具,通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,合理叙述项目间的依赖关系。

Maven下载安装

安装

直接解压就可以。

目录结构

  • bin :包含了Maven的运行脚本文件
  • boot:Maven的依赖的类加载器
  • conf:Maven的全局配置文件(settings.xml),定制Maven的运行行为,把C:\Users\64434.m2\repository作为本地仓库的路径,可以通过核心配置文件来改。
  • lib:依赖jar包。

maven环境变量配置

在任何地方都能够运行mvn命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-99MHt3Ys-1593159581974)(C:\Users\游建成\AppData\Roaming\Typora\typora-user-images\image-20200623194255333.png)]

验证:打开命令行输入mvn -v 查看结果。

Maven使用

项目格式

  • src/main/java:存放项目的.java文件
  • src/main/resources:存放项目资源文件,如spring、struts2配置文件,db.properties
  • src/main/webapp: 存放jsp,css,image等文件
  • src/test/java:存放所有测试.java文件,如JUnit测试类
  • src/test/resources: 测试资源文件
  • pom.xml:主要要写的maven配置文件
  • target:项目由maven自动输出位置

创建Maven项目

确保idea中下载了maven的插件

配置:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mjNZO6R3-1593159581984)(C:\Users\游建成\AppData\Roaming\Typora\typora-user-images\image-20200623193019321.png)]

1、maven本地的目录。

2、maven全局配置文件(默认为本地仓库)

3、配置的maven仓库。

Maven仓库

Maven所有的Jar包都是放到maven仓库当中,在项目当中是对仓库jar包的引用。

Maven仓库

  1. 本地仓库:本地存放jar的目录。

  2. 私服:私人搭建的服务器,一般在企业内部局域网使用

  3. 中央仓库:Maven内置了一个远程仓库的地址,它就是中央仓库

Maven找jar包的过程

Maven查找引入jar包时, 会先到本地仓库当中查找,没有找到现到私服中找,也没有就去到远程中央仓库查找,找到后会下载到本地仓库,下次就不用到远程仓库了,最终都会把jar包下载到本地仓库,Maven工程最终引用的都是本地的jar包。

设置本地仓库目录地址

1、默认本地仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FOPpsidn-1593159581994)(C:\Users\游建成\AppData\Roaming\Typora\typora-user-images\image-20200623200557403.png)]

2、修改本地仓库

  1. 把maven安装目录config中setting.xml复制一份到.m2文件夹下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Nv5Faqb-1593159582012)(C:\Users\游建成\AppData\Roaming\Typora\typora-user-images\image-20200623200644675.png)]

  1. 打开setting.xml修改本地仓库地址[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmm6P2zA-1593159582028)(C:\Users\游建成\AppData\Roaming\Typora\typora-user-images\image-20200623200748412.png)]

阿里云镜像

<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VmecqWC5-1593159582042)(C:\Users\游建成\AppData\Roaming\Typora\typora-user-images\image-20200623202333360.png)]

Jar包的坐标

1、组织

2、项目

3、版本

<groupId>org.youyuan</groupId>
<artifactId>myblog</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>myblog</name>
<description>Demo project for Spring Boot</description>

Maven常用命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tYKf6z5A-1593159582047)(C:\Users\游建成\AppData\Roaming\Typora\typora-user-images\image-20200623200951894.png)]

Maven作用范围(scope)

compile

默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去

test

依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit

runtime

表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段

provided

打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作

system

从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径

Maven创建Web工程

注意事项

generating project in batch mode 很慢,是应为maven获取archetype-catalog.xml导致用浏览器打开http://repo1.maven.org/maven2/archetype-catalog.xml很慢

解决方法

在用maven创建项目时在properties中添加 archetypeCatalog=internal,让maven读取本地配置即可

archetypeCatalog=internal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值