Maven入门基础知识

    技术2026-04-06  7

    Maven

    什么是maven:本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM:Project Object Model)。

    作用:

    jar包管理,直接写标签自动下载,避免资源间的版本冲突问题统一工程结构,提供标准的、跨平台的自动化项目构建方式提供插件方便开发人员打包

    Maven的安装

    安装包下载

    官网:http://maven.apache.org/

    下载地址:http://maven.apache.org/download.cgi

    java环境变量确认

    进入cmd执行javac命令确认java环境变量无误:javac

    解压maven安装

    不要包含中文以及特殊符号

    配置MAVEN_HOME
    配置path

    不要删除原有的path,直接在path中添加一下信息%MAVEN_HOME%\bin

    确认是否安装完成

    仓库

    概念:用于储存资源,包含各种jar包

    分类:

    本地仓库:本电脑远程仓库:非本机电脑 中央仓库:开源私服:部门/公司范围内
    私服作用:具有版权,一定范围共享,内部开放

    坐标

    maven中描述仓库中资源的位置

    坐标: 唯一确定某一个文件夹,然后就能够找对应的jarhttps://mvnrepository.com/

    主要组成:

    groupId:定义当前maven项目隶属组织名称artifactId:定义当前maven项目名称version:定义当前项目版本号

    阿里镜像配置

    进入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>
    全局setting与用户setting区别:全局定义l当前计算机maven的公共配置,用户定义的是当前用户的配置

    目录结构

    project-name src main javaresources test javaresources pom 指定jar web-project src main javaresourceswebapp test javaresources pom 指定jar

    创建maven工程

    和普通工程一样只是选择的是maven

    注意最后创建完成后的弹窗选择:Enable Auto-Import

    maven工程和普通工程使用唯一区别在于jar可以通过pom指定

    web 工程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>
    .普通创建tomcat的方式一致

    依赖

    具有传递性,可分为直接依赖、间接依赖;路径优先,声明优先

    效果: 导入其他包如果说该包依赖于其他jar你在当前项目也会获得这些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生命周期

    compile–>test-complile–>test–>package–>install

    生命周期特点

    执行后面的生命周期也会先顺序执行前面的生命周期

    clean

    清除target目录,清除缓存

    package

    打包工程

    install

    将jar安装到本地仓库
    插件
    插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能默认maven在各个生命周期上绑定有预设的功能通过插件可以自定义其他功能

    区别:WAR VS JAR

    war : web工程,能够直接部署到tomcatjar: 普通的java工程,多半是工具类或则框架的源码
    Processed: 0.017, SQL: 9