Maven 复习知识点

本文详细介绍了如何在IDEA中集成Maven,包括下载与配置、修改Maven配置文件、集成Maven插件、Maven基本使用、构建功能、依赖管理和聚合/继承等,帮助开发者理解和实践Maven在Java项目中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Maven

第 1 章 IDEA 集成 Maven

1.1 下载及配置 Maven
  1. 下载 Maven

https://maven.apache.org/download.cgi,选择下载后解压

https://maven.apache.org/download.cgi,选择下载后解压

      2.配置 MAVEN_HOME

第一步:新增环境变量:MAVEN_HOME

第二步:在 path 环境变量中添加:%MAVEN_HOME%\bin

第三步:测试:按住 win+R 输入cmd,进入黑窗口控制台。输入命令: mvn -v 。如果出现以下 Maven 的版本信息,则说明 Maven 的安装与环境变量的配置均正确。

1.2 修改 Maven 配置文件
  1. 打开下载的 Maven,找到 conf 目录下的 settings.xm

在 中添加子节点:

指定目录 F:\Program Files\maven\repository 作为本地仓库,用来存储 jar 包:

55行

国内镜像:

160行

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

jdk编译版本

java工程 - 构建和编译 - maven  maven默认使用jdk1.5版本构建

268行

<!--在profiles节点(标签)下添加jdk编译版本 268行附近-->

<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>

1.3 IDEA 集成 Maven 插件

第 2 章 Maven基本使用

标签说明
groupId项目的唯一标识,一般为公司域名倒写
artifactId项目名称
version版本号
packaging项目打包方式,默认为 jar,还可以是 war、rar、pom
dependencies项目依赖
properties属性
build项目构建配置信息,比如 jdk 版本
2.1.插件创建

        安装插件  JBLJavaToWeb

        ​​安装插件  JBLJavaToWeb

        工程上右键 - jbljavatoweb即可

第 3 章 Maven构建功能

生命周期说明
clean清理编译项目
compile编译项目源代码
test测试,测试代码不会被打包或部署
package打包
install将包安装到本地仓库,以便其他项目依赖
site生成项目报告,站点,发布站点
deploy将包部署部署到远程仓库,与其他开发人员
3.1.注意: 
命令最终会触发插件进行工作

如果在idea中进行命令触发失败,证明Maven_home配置错误好好检查!!

war包打包插件和jdk版本不匹配:pom.xml 添加以下代码即可:
<build>
    <!-- 解决自带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>
3.2依赖传递和依赖冲突

   3.2.1依赖冲突选择原则:

        第一原则: 谁短谁优先  [依赖传递的路径]

        第二原则: 谁上谁优先  [pom编写的依赖位置]

  3.2.2依赖冲突手动排除:

        

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>2.13.3</version>

<exclusions>

<exclusion>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-core</artifactId>

</exclusion>

</exclusions>

</dependency>

第4章 聚合和继承

     4.1继承语法

父工程

  <groupId>com.atguigu.maven</groupId>
  <artifactId>pro03-maven-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <!-- 当前工程作为父工程,它要去管理子工程,所以打包方式必须是 pom -->
  <packaging>pom</packaging>

子工程

<!-- 使用parent标签指定当前工程的父工程 -->
<parent>
  <!-- 父工程的坐标 -->
  <groupId>com.atguigu.maven</groupId>
  <artifactId>pro03-maven-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
</parent>

<!-- 子工程的坐标 -->
<!-- 如果子工程坐标中的groupId和version与父工程一致,那么可以省略 -->
<!-- <groupId>com.atguigu.maven</groupId> -->
<artifactId>pro04-maven-module</artifactId>
<!-- <version>1.0-SNAPSHOT</version> -->

父工程依赖统一管理

        父工程声明版本       

<!-- 使用dependencyManagement标签配置对依赖的管理 -->
<!-- 被管理的依赖并没有真正被引入到工程 -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
  </dependencies>
</dependencyManagement>

         子工程引用版本

<!-- 子工程引用父工程中的依赖信息时,可以把版本号去掉。  -->
<!-- 把版本号去掉就表示子工程中这个依赖的版本由父工程决定。 -->
<!-- 具体来说是由父工程的dependencyManagement来决定。 -->
<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
  </dependency>
</dependencies>
      4.2聚合语法  

  父项目中包含的子项目列表

<project>
  <groupId>com.example</groupId>
  <artifactId>parent-project</artifactId>
  <packaging>pom</packaging>
  <version>1.0.0</version>
  <modules>
    <module>child-project1</module>
    <module>child-project2</module>
  </modules>
</project>

聚合演示

通过触发父工程构建命令、引发所有子模块构建!产生反应堆!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值