Maven基础

    技术2025-02-03  9

    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工程,多半是工具类或则框架的源码
    Processed: 0.009, SQL: 9