IDEA集成Maven

一、创建Maven项目

1、配置Maven环境(全局)

2、创建项目

3、配置jdk版本

4、创建Maven项目

  1. 创建模块

  2. 创建test下面的resources

完整的Maven目录:

  1. 创建类

二、Maven坐标

  • 什么是坐标?

    • Maven 中的坐标是资源(jar)的唯一标识,通过该坐标可以唯一定位资源位置。
    • 使用坐标来定义项目或引入项目中需要的依赖。
  • Maven 坐标主要组成

    • groupId: 定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.example)
    • artifactId: 定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
    • version: 定义当前项目版本号
      1. SNAPSHOT:功能不稳定、尚处于开发中的版本,即快照版本
      2. RELEASE:功能趋于稳定、当前更新停止,可以用于发行的版本(如果是具体版本号,不带RELEASE其实也是RELEASE)

三、导入Maven项目

  • 方式一:File -> Project Structure -> Modules -> Import Module -> 选择 maven 项目的 pom.xml
  • 方式二:Maven 面板 -> +(Add Maven Projects) -> 选择 maven 项目的 pom.xml

导入 Maven 项目:

建议将要导入的 maven 项目复制到你的项目目录下

建议选择 maven 项目的 pom.xml 文件进行导入

四、依赖配置

  • 依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
  • 配置:
    1. 在 pom.xml 中编写 <dependencies> 标签
    2. <dependencies> 标签中 使用 <dependency> 引入坐标
    3. 定义坐标的 groupId, artifactId, version
    4. 点击刷新按钮,引入最新加入的坐标

访问:https://mvnrepository.com/ 找到对应的依赖

例如查找:spring-context

复制粘贴到pom.xml中,并点击右上角刷新(下载)

下载完成如图

可以看到上面下载了很多对应的依赖,这种情况就叫:依赖传递

五、排除依赖

排除依赖:指主动断开依赖的资源,被排除的资源无需指定版本。

使用<exclusions> </exclusions>

xml 复制代码
<!--  配置依赖  -->
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>6.1.4</version>

        <!-- 排除依赖 -->
        <exclusions>
            <exclusion>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-observation</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

注意事项:

  • 一旦依赖配置变更了,记得重新加载
  • 引入的依赖本地仓库不存在,记得联网

六、Maven生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一。

Maven中有3套相互独立的生命周期:

  • clean:清理工作。
  • default:核心工作,如:编译、测试、打包、安装、部署等。
  • site:生成报告、发布站点等。

生命周期阶段

  • clean:移除上一次构建生成的文件
  • compile:编译项目源代码
  • test:使用合适的单元测试框架运行测试(junit)
  • package:将编译后的文件打包,如:jar、war等
  • install :安装项目到本地仓库

注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。

执行指定生命周期的两种方式:

  • 在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。
  • 在命令行中,通过命令执行。
相关推荐
程序员二叉2 小时前
【JUC】ThreadLocal底层原理|内存泄漏|弱引用|跨线程传递方案
java·开发语言·面试·职场和发展·juc
程序员二叉2 小时前
【JUC】线程池全套深度详解|参数|流程|拒绝策略|调优|异常处理
java·开发语言·jvm·算法·面试·juc
老马识途2.02 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring
青山木2 小时前
Hot 100 --- 轮转数组
java·数据结构·算法
Qt程序员2 小时前
掌握 Linux 内核调度:从原理到实现(进程篇)
java·开发语言
code bean2 小时前
【LangChain】检索器完全指南:从向量检索到生产级 RAG 架构
java·开发语言·微服务
大白菜和MySQL3 小时前
java应用排查高线程
java·python
KobeSacre3 小时前
ReentrantLock源码
java
嵌入式协会20240723 小时前
(已解决)MinIO python 获取预签名出现forbidden、errornetwork等错误
java·开发语言·python