Maven笔记总结

1. Maven简介

Maven相关概念

Apache公司开发的开源项目管理工具,主要用于依赖管理和项目构建,适用于多种编程语言(如Java、C#、Ruby、Scala等),方便下载和储存jar包. 

依赖管理

当项目A需要项目B的资源时,这种关系称为依赖关系,依赖关系需要进行管理。

项目构建

项目构建是指从源文件到可执行文件的过程,通常包括七个步骤:清理、编译、测试、报告、打包、安装和部署。

2.Maven的安装配置

Maven下载链接:Maven – Download Apache Maven
Maven是绿色版本,解压即用。
使用Maven之前需要配置环境:配置JAVA_HOME环境变量及PATH
配置MAVEN_HOME环境变量及PATH
解压路径不包含中文及空格
在命令行中输入mvn -v验证安装
使用Maven版本为3.8.8(需要最低JDK版本7),使用JDK17。

2.1设置本地仓库位置

<!-- 设置本地仓库位置 -->
<localRepository>D:\\repository</localRepository>

2.2设置阿里云镜像:

<!-- 在mirrors节点下添加中央仓库镜像 -->
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

2.3设置JDK版本:

<!-- 在profiles节点下添加jdk编译版本 -->
<profile>
    <id>jdk-17</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>17</jdk>
    </activation>
    <properties>
      <maven.compiler.source>17</maven.compiler.source>
      <maven.compiler.target>17</maven.compiler.target>
      <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
    </properties>
</profile>
3.Maven基本

仓库文件:jar包,配置文件

仓库种类:本地仓库,远程仓库

Maven坐标: Maven中使用坐标设置jar包在仓库中的位置及版本,从而引入jar包.

语法:

<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

坐标中的三个向量:
groupId:Maven工程公司或组织域名倒序
artifactId:Maven工程项目名称
version:Maven工程版本(主版本号-次版本号-修订号)

gav特点:
g-a-v:jar包在仓库中的位置
a-v:jar包名称

packaging:

打包方式: ava工程-jar(默认值)
                 web工程-war
                 父工程-pom(不打包)

4.Maven项目构建

清理:清理上一次编译后产生的文件,target文件.
编译:将Java源文件编译成class文件,并存储在target/classes目录下。
测试:运行test目录下的测试代码,并将编译后的文件存储在target/test-classes目录下。
打包:根据项目类型打包(Java项目为jar包,Web项目为war包)。
安装:将打包后的文件安装到本地仓库,以供其他项目使用。
部署:将打包后的文件部署到远程仓库,以供其他项目使用。
报告:生成Maven项目的相关报告,如HTML格式的项目报告。

 <build>
    <!-- jdk17和打war包和site插件版本插件不匹配 -->
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.2</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.9.1</version> <!-- 此处替换为你所需的版本号 -->
      </plugin>
    </plugins>
  </build>

Maven项目构建中的生命周期

定义Maven命令的执行顺序,主要包括以下三个生命周期:

清理周期:负责项目清理工作。命令:mvn clean
默认周期:执行项目构建的主要任务,包括编译、测试、打包、安装和部署。命令:mvn compile、mvn test、mvn package、mvn install、mvn deploy
注意:这些命令按顺序执行,执行后续命令时会自动执行前面的所有命令。
报告周期:生成项目报告。命令:mvn site

5.依赖管理

概念:如果项目A需要项目B中资源,我们称项目A依赖项目B,项目与项目之间依赖关系需要被管理,简称:依赖管理 ,jar包之间依赖管理关系.

pom.xml文件中添加依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>6.0.6</version>
    </dependency>
</dependencies>

依赖范围:定义依赖在项目中的作用域,如编译、测试、运行时等。

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.3.1</version>
    <!-- 依赖范围 -->
    <scope>test</scope>
</dependency>

依赖传递性:如果项目A依赖项目B,而项目B依赖项目C,那么项目A也间接依赖项目C。只有compile范围的依赖具有传递性。

依赖排除:在某些情况下,可以排除不需要的依赖

<dependency>
    <groupId>com.atguigu</groupId>
    <artifactId>B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <exclusions>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
    </exclusions>
</dependency>


依赖冲突:当不同版本的相同依赖同时存在时,Maven会选择路径最短或先声明的依赖。
依赖终止:非compile范围的依赖不会传递,从而终止依赖链。

提取/引入版本号:通过定义属性统一管理依赖版本。

<properties>
    <log4j-version>1.2.17</log4j-version>
</properties>

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>${log4j-version}</version>
</dependency>

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值