当前位置: 首页 > article >正文

Maven安装、idea集成Maven、Maven依赖管理、Maven生命周期

        一. Maven介绍

        1. Maven是一款用于管理和构建Java项目的工具,是Apache旗下的一个开源项目,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建

        2. Maven作用:

                (1) 依赖管理:方便快捷的管理项目依赖的资源(jar包)

                (2) 项目构建:标准化的跨平台(Linux、Windows、MacOS)的自动化项目构建

                (3) 统一项目结构:提供标准、统一的项目结构

        3. 官网:Welcome to Apache Maven – Mavenhttps://maven.apache.org/

        4. 仓库:用于存储资源,管理各种jar包

                (1) 本地仓库:自己计算机上的一个目录;查找顺序1

                (2) 中央仓库:由Maven团队维护的全球唯一的。地址:https://repo1.maven.org/maven2/;查找顺序3

                (3) 远程仓库(私服):一般由公司团队搭建的私有仓库;查找顺序2

二. Maven安装

        安装步骤:(尽量安装在英文无空格目录下)

        1. 解压apache-maven-3.9.9-bin.zip

        2. 配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录

                <localRepository>D:\Maven\apache-maven-3.9.9-bin\apache-maven-3.9.9\mvn_repo</localRepository>

        3. 配置阿里私服:修改conf/settings.xml中的<mirrors>标签,为其添加一下子标签

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

       4. 配置环境变量:MAVEN_HOME 为Maven的解压目录,并将其bin目录加入PATH环境变量

        5. 测试是否配置成功

三. IDEA集成Maven 

        0. 配置Maven环境(全局)

        1. 创建Maven项目

                (1) 创建模块,选择New Model,填写模块信息,选择构建工具为Maven,点击create,创建完成。

                (2) 编写HelloWord,并运行

        2. Maven坐标

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

                Maven坐标主要组成:

                        ① groupId:定义当前Maven项目隶属组织名称(通常是域名反写)

                        ② artifactId:定义当前Maven项目名称(通常是模块名称)

                        ③ version:定义当前项目版本号。(SNAPSHOT:功能不稳定,尚处于开发中的版本,即快照版本;RELEASE:功能趋于稳定,当前更新停止,可以用于发行的版本)

                        

        3. 导入Maven项目

                建议将要导入的Maven项目复制到你的项目目录下;建议选择Maven项目的pom.xml文件进行导入

                方式一:File-> Project Structure -> Modules -> Import Module -> 选择Maven项目的pom.xml文件

        

        

                方式二:idea右侧Maven面板 -> +(Add Maven Projects) -> 选择Maven项目的pom.xml文件

四. Maven-依赖管理

        1. 依赖配置

                依赖:指当前项目运行所需的jar包,一个项目中可以引入多个依赖

                配置:① 在pom.xml文件中编写<dependencies>标签

                        ② 在<dependencies>标签中使用<dependencie>引入坐标

                        ③ 定义坐标的groupId,artifactId,version

                        ④ 点击刷新按钮,引入最新加入的坐标

                注意:如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索

         2. 排除依赖

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

                使用标签:<exclusion></exclusion>

 <!--引入依赖    -->
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.1.4</version>

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

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

五. Maven生命周期

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

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

                ① clean:清理工作

                ② default:核心工作,如编译、测试、打包、安装、部署等

                ③ site:生成报告、发布站点等

        3. 每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段

 

        4. 重点关注的5个生命周期阶段:

                ① clean:移除上一次构建生成的文件(target)

                ② compile:编译项目源代码(生成target文件)

                ③ test:使用合适的单元测试框架运行测试(Junit)

                ④ package:将编译后的文件打包,如jar、war等(位置在target目录下)

                ⑤ install:安装项目到本地仓库

        注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行(如运行install时,前面3个阶段都会运行-除clean(不是同一套))

        6.使用指令执行Maven的生命周期 

        

                其他命令一样 mvn xxxxx。


http://www.kler.cn/a/586093.html

相关文章:

  • C语言中的流程控制语句
  • Linux》》Ubuntu apt 常用命令汇总,Linux 文件目录结构 修改root 密码 查看系统版本
  • G-Star 公益行 | 温暖相约 3.30 上海「开源×AI 赋能公益」Meetup
  • 图论入门【数据结构基础】:什么是图?如何表示图?
  • SpringBoot第二天
  • 深搜专题9:取数游戏
  • C++11多线程,锁与条件变量
  • 【CXX】6.7 SharedPtr<T> — std::shared_ptr<T>
  • 网络_面试_HTTP请求报文和HTTP响应报文
  • RGV调度(四)--排队算法
  • VLAN,DHCP实验访问物理机
  • TDengine 配置 ODBC 数据源
  • 工程实践:如何使用SU17无人机来实现室内巡检任务
  • 达梦数据库中插入导出图片的方法与应用
  • 通过 CSS 的 命名页面(Named Pages) 技术实现作用域隔离,实现 @page 样式仅影响当前组件
  • K8S之QoS详解
  • JVM垃圾收集器相关面试题(1)
  • app=Flask(__name__)中的__name__的意义
  • Git版本控制系统详解
  • [MYSQL]关于join的慢sql优化