Maven基础
一,Maven简介
1,Maven的概念与作用
传统项目管理状态分析
jar包不统一,jar包不兼容工程升级维护过程操作繁琐 Maven是什么Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)POM(项目对象模型)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vf3wWwe2-1593826750512)(E:\每日讲课笔记\WEB_new\16-Maven基础(双元)\day01\img\1593698119066.png)]Maven能做项目构建和依赖管理
项目构建:提供一个标准的跨平台的自动化构建方式(一条指令,一个按钮就帮我们把整个过程管理了)依赖管理 :方便快捷的管理项目依赖的资源(jar包)(简单来说就是帮我们管jar包,并且jar包如果有冲突,能帮你管理),提供插件方便开发人员打包项目成一个jar开发结构统一:提供标准的、统一的项目结构
二,Maven下载与安装
解压apache-maven-3.6.3-bin.zip 接的文件是这一个配置MAVEN_HOME配置path(%MAVEN_HOME%\bin)cmd中执行mvn看是否安装成功
三,Maven基本概念
1,仓库:用于存储资源,包含各种jar包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XCtxIBQG-1593826750517)(E:\每日讲课笔记\WEB_new\16-Maven基础(双元)\day01\img\1593700373877.png)]
仓库分类
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源远程仓库:非本机电脑上的仓库,为本地仓库提供资源
中央仓库:Maven团队维护中,存储所有资源的仓库私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源 私服的作用:
保护具有版权的资源,包含购买或自主研发的jar中央仓库中的jar都是开源的,不能存储具有版权的资源一定范围内共享资源,仅对内开放,不对外共享
2,坐标
mvnrepository.com这里面查坐标Maven坐标主要组成group:定义当前Maven项目隶属组织名称(eg:org.mybatis)artifactld:定义当前Maven项目名称version:定义当前项目版本号
3,仓库配置
进入maven_home的目录
进入conf目录
编辑settings文件
修改本地仓库地址
<localRepository>你的目录
</localRepository
>
配置阿里镜像(远程仓库配置)
在mirros标签下面添加一下内容
<mirror>
<id>alimaven
</id>
<name>aliyun maven
</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/
</url>
<mirrorOf>central
</mirrorOf>
</mirror>
四,第一个Maven程序
目录结构
project-name
src
main
javaresources test
javaresources pom 指定jar
web-project
src
main
javaresourceswebapp test
javaresources pom 指定jar
web 工程tomcat配置
1. tomcat插件
添加Tomcat运行插件到pom文件中
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven
</groupId>
<artifactId>tomcat7-maven-plugin
</artifactId>
<version>2.1
</version>
<configuration>
<port>80
</port>
<path>/
</path>
</configuration>
</plugin>
</plugins>
</build>
五,依赖管理
效果: 导入其他包如果说该包依赖于其他jar你在当前项目也会获得这些jar可选依赖
他可以让你选择那些你依赖的jar不给其他工程可见
<dependencies>
<dependency>
<groupId>mysql
</groupId>
<artifactId>mysql-connector-java
</artifactId>
<version>8.0.18
</version>
<optional>true
</optional>
</dependency>
</dependencies>
排除依赖
主动排除送的jar
<dependency>
<groupId>com.itheima
</groupId>
<artifactId>maven-hello
</artifactId>
<version>1.0-SNAPSHOT
</version>
<exclusions>
<exclusion>
<groupId>mysql
</groupId>
<artifactId>mysql-connector-java
</artifactId>
</exclusion>
</exclusions>
</dependency>
依赖范围
compile 默认都有test 只能在test包里面使用provide 除了不参与打包其他都有runtime 只参与打包其他地方都没有
六,生命周期与插件
maven生命周期
生命周期特点
执行后面的生周期也会先顺序执行前面的生命周期 clean
清楚target目录,清楚缓存 package
打包工程 install
就将jar安装到我们本地仓库
WAR VS JAR
war : web工程,能够直接部署到tomcat 生命周期特点
执行后面的生周期也会先顺序执行前面的生命周期 clean
清楚target目录,清楚缓存 package
打包工程 install
就将jar安装到我们本地仓库
WAR VS JAR
war : web工程,能够直接部署到tomcatjar: 普通的java工程,多半是工具类或则框架的源码