首页 > 其他分享 >maven组件介绍

maven组件介绍

时间:2024-08-26 21:48:54浏览次数:7  
标签:Maven 依赖 模块 介绍 maven test 版本 组件 mvn

写在前面

今天我们来学习一下 Maven。简单来说,Maven 是一种项目管理和构建工具,它的核心原理是通过使用插件(这些插件是由 Java 编写的 JAR 包)来实现的。

Maven 的作用

假设一个公司要开发一个项目,而这个项目又分成多个模块,每个模块又有许多业务需求,需要不同的小组进行开发和整合。这样的问题是,在快速发展的技术时代里,每个人可能使用不同版本的 JAR 包和软件版本。这种版本不一致的问题可能会导致在项目整合时出现各种问题。

Maven 如何解决这些问题

Maven 能够有效地解决这些问题,其关键在于以下几点:

  1. 中央仓库
    Maven 提供了一个中央仓库,开发者可以从这个中央仓库中获取所需的 JAR 包。此外,开发者完成的项目也可以打包成 JAR 包并发布到这个中央仓库中,供其他模块的开发人员使用。

  2. 统一版本管理
    项目经理或管理员可以使用 Maven 来统一管理所有开发所需的版本,从而最大程度上减少因版本不一致而产生的问题。Maven 的 pom.xml 文件中定义了项目所需的所有依赖及其版本,这样可以确保每个开发者都使用相同版本的库和工具。

Maven

下载

可以去国内镜像站中下载 Maven。

安装

  1. 解压缩包
    解压 Maven 压缩包到指定目录。

  2. 环境变量配置

    • 新建一个 MAVEN_HOME 环境变量,指向 Maven 解压目录。
    • MAVEN_HOME/bin 目录添加到 PATH 环境变量中。
  3. 验证安装
    在命令行中使用 mvn -v 来查询 Maven 的版本,验证是否安装成功。

    参考网站:Maven Repository

基本使用

项目构建

  • 目录结构

    src                  # 书写 Java 源代码
    ├── main              # 书写 Java 主程序代码
    │   ├── java          # 书写 Java 代码
    │   └── resources    # 书写配置文件代码
    └── test              # 书写测试代码
        ├── java          # 书写测试 Java 代码
        └── resources    # 书写测试配置文件代码
    pom.xml               # 配置文件
    target                # 编译后目录结构
    
  • 相关操作

    项目构建是一个过程,由以下步骤组成。项目创建是瞬间完成的。

    1. 清理mvn clean
    2. 编译mvn compile
    3. 测试mvn test
    4. 报告mvn site
    5. 打包mvn package
    6. 安装mvn install
    7. 部署mvn deploy
  • 生命周期

    Maven 的生命周期按照顺序执行各个命令,包含以下三个部分:

    1. Clean LifeCycle:在进行真正的构建之前进行一些清理工作。
    2. Default LifeCycle:构建的核心部分,包括编译、测试、打包、安装、部署等。
    3. Site LifeCycle:生成项目报告、站点及发布站点。

基本设置

pom.xml 配置

  • 坐标

    Maven 使用坐标来唯一标识一个项目的模块:

    1. groupId:公司或组织的域名倒序 + 当前项目名称
    2. artifactId:当前项目的模块名称
    3. version:当前模块的版本
    <groupId>com.shujia</groupId>
    <artifactId>maven-demo</artifactId>
    <version>1.0</version>
    
  • 设置父工程坐标

    <parent>
        <artifactId>maven-demo</artifactId>
        <groupId>com.shujia</groupId>
        <version>1.0</version>
    </parent>
    
  • 设置依赖

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
  • 依赖的范围

    依赖的语法:

    • compile(默认值):在 maintest、Tomcat 服务器下均有效。
    • test:仅在 test 目录下有效。
    • provided:在 maintest 下有效,Tomcat 服务器无效。

注意事项

  1. 在一个大型 Maven 项目中,多个子模块会继承父模块的依赖。如果父模块中有多个不同版本的同一依赖,则使用最后声明的版本。如果子模块中声明了不同版本的依赖,则以子模块的版本为准。

  2. 如果子模块需要引入其他子模块的依赖,可以直接在 dependency 中添加相关坐标。如果引入其他子模块的依赖,导入的依赖会遵循声明顺序,即前面的模块优先。

  3. 如果想要控制父模块的所有依赖不直接传递给子模块,可以使用 dependencyManagement 来管理,子模块需要明确声明父模块的依赖才能使用。

  4. 对于版本号相同的依赖,可以在 properties 中定义参数,例如 <hadoop.version>3.1</hadoop.version>,使用 ${hadoop.version} 替代版本号,以便统一管理版本号。

Maven 示意图

在 IDEA 中配置 Maven

  1. 创建 Maven 项目
    在 IntelliJ IDEA 中创建一个 Maven 项目。在设置中配置 Maven 的安装目录、依赖包存放位置和 conf 中的 settings.xml 文件。IDEA 会自动创建并下载必要的依赖包。

  2. 配置完成
    配置完成后,IDEA 会出现 pom.xml 文件和 Maven 工具栏,可以继续进行相关配置并正常使用 Maven。

标签:Maven,依赖,模块,介绍,maven,test,版本,组件,mvn
From: https://www.cnblogs.com/cjybigdatablog/p/18381634

相关文章

  • Unity游戏开发——Unity脚本组件:游戏开发的灵魂
    Unity游戏开发“好读书,不求甚解;每有会意,便欣然忘食。”本文目录:Unity游戏开发Unity游戏开发Unity脚本组件:游戏开发的灵魂前言1.StandardAssets导入报错解决办法2.什么是Unity脚本组件?3.创建和使用脚本组件3.1创建脚本3.2附加脚本到游戏对象4.理解Unity脚本......
  • 自我介绍&软工5问
    自我介绍:我有很多兴趣爱好,什么都喜欢但也只是喜欢,编程和技术探索的喜爱正在稳步提升中。偶尔会尝试用代码解决问题或实现有趣的项目。除了编程,我还热爱阅读,尤其是关于科技、历史和心理学的书籍,它们让我从不同的角度思考问题。我也喜欢旅行和摄影,这些爱好让我能够用镜头记录下世界......
  • 软工homework1:自我介绍+5问
    这个作业属于哪个课程广工计院计科34班软工这个作业要求在哪里作业要求这个作业的目标学会创建并使用自己的博客和Github,熟悉其中的基本操作和功能,用Markdown编写完成自我介绍以及软工5问前言亲爱的读者,正如你所见,这是我在博客园发布的第一篇博客,也是软工的第......
  • 上网行为管理系统推荐(六款上网行为管理系统介绍)
    上网行为管理系统(IBMS)已成为企业确保网络安全、提升工作效率、保护企业资产的重要工具。本文将为您推荐六款功能强大的上网行为管理系统,助您轻松管理企业网络,守护数据安全。1.网控堡垒系统亮点功能:全面监控:实时监控员工的网页浏览、邮件收发、即时通讯、文件传输等网络活......
  • React 入门第六天:理解组件生命周期与效果
    在React学习的第六天,我深入探讨了组件的生命周期以及如何使用React的生命周期方法和副作用处理功能。这一天的学习让我对React组件的内部运作机制有了更清晰的理解,同时也帮助我更好地管理组件的状态和副作用。1.组件生命周期简介React组件的生命周期指的是从组件创建到销......
  • 计算机视觉与深度学习-01-计算机视觉相关介绍-北邮鲁鹏老师课程笔记
     一.图像处理vs计算机视觉图像处理输入是图像或视频,输出也是图像或视频。计算机视觉输入是图像或视频,输出不仅限于图像或视频,还可以是语义标签、3维场景的结构信息等,更强调的是图像或者视频内容的输出。二.计算机视觉介绍人类的对智能的传统评价不能用来评价机器!计算......
  • 网络安全系统性学习路线「全文字详细介绍」
    ......
  • Vue-cil(脚手架,版本:2.6.10)的搭建过程(项目创建,组件路由)
    目录一.前端项目结构的对比  1.传统的前端项目结构  2.现在的前端项目结构 二.什么是vue-cil三.主要的功能四.需要的环境(前提)  1.Node.js  2.npm  3.使用HbuilderX快速搭建​五.常用命令六.创建项目的需要  1.创建组件      ......
  • 10大秘籍!FL Studio24.1.1.4239中文版功能介绍,轻松上手音乐制作!
    FLStudio24.1.1.4239中文版是一款备受赞誉的数字音频工作站,它以其强大的功能和用户友好的界面赢得了音乐制作者的喜爱。在这篇文章中,我将向您介绍这款软件的主要特点和优势,以及如何利用它来创作出令人惊叹的音乐作品。FLStudio21汉化版下载网盘链接:https://pan.quark.cn/......
  • 专业视频编辑和制作软件Adobe Media Encoder(ME)win/mac下载安装和软件介绍
    一、软件概述1.1软件简介AdobeMediaEncoder(ME)是由Adobe公司开发的一款专业视频编辑和制作软件,全称为MediaEncoder,是CreativeCloud套件中的一个重要组件。AdobeME以其强大的视频编码、转码、调整、剪辑、合成等功能,深受专业视频制作人员、视频制片人和爱好者的喜爱。1.......