maven的简单介绍

目录

  • 1、maven简介
  • 2、maven 的主要特点
  • 3、maven的下载与安装
  • 4、修改配置文件
  • 5、私服(拓展)

1、maven简介

Maven 是一个广泛使用的项目管理和构建工具,主要应用于 Java 项目。Maven 由 Apache 软件基金会开发和维护,它提供了一种简洁且一致的方法来构建、管理和部署 Java 应用程序。Maven 基于项目对象模型(Project Object Model,简称 POM)的概念,使用 XML 文件(通常是 pom.xml)来描述项目的配置和依赖关系。

2、maven 的主要特点

  1. 项目对象模型(POM)

    • Maven 使用 pom.xml 文件来描述项目的配置信息,包括项目的基本信息(如项目名称、版本号、描述等)、依赖关系、构建配置、插件配置等。
    • 通过 pom.xml,Maven 可以管理和解决项目的依赖关系,确保项目的各种库和工具版本一致。
  2. 依赖管理

    • Maven 通过中央仓库(Central Repository)管理和下载项目依赖的库文件。
    • Maven 可以自动解决依赖关系,确保项目中的所有依赖库都能够正确地下载和使用。
    • 可以通过 pom.xml 文件中的 <dependencies> 元素来声明项目所需的依赖库。
  3. 生命周期和构建阶段

    • Maven 定义了一套标准的生命周期(Lifecycle),包括一系列的构建阶段(Phases),如 validatecompiletestpackageinstalldeploy 等。
    • 每个构建阶段都对应一个或多个插件目标(Goals),这些目标执行具体的构建任务。
    • 通过 mvn 命令,开发者可以轻松地执行特定的构建阶段,如 mvn compile 用于编译源代码,mvn test 用于运行单元测试,mvn package 用于打包项目等。
  4. 插件系统

    • Maven 通过插件(Plugins)来扩展其功能。插件是一组可执行的目标(Goals),每个目标执行特定的构建任务。
    • 例如,maven-compiler-plugin 用于编译 Java 源代码,maven-surefire-plugin 用于运行单元测试。
    • 可以在 pom.xml 文件中配置插件,以满足项目特定的构建需求。
  5. 多模块项目支持

    • Maven 支持多模块项目(Multi-Module Projects),允许将一个大型项目拆分为多个子模块,每个子模块可以独立构建和测试。
    • 通过在父项目的 pom.xml 文件中定义 <modules> 元素,可以管理多个子模块。

3、maven的下载与安装

1.下载

官网:http://maven.apache.org/

下载地址:http://maven.apache.org/download.cgi

2.安装配置

设置环境变量:

//后面是你下载的地址
MAVEN_HOME = E:\apache-maven-3.9.8

在path目录配置:

%MAVEN_HOME%\bin

打开cmd控制面板,通过 mvn -v命令检查maven是否安装成功
在这里插入图片描述

4、修改配置文件

安装目录->conf->setting.xml

1.修改本地仓库

默认本地仓库在系统磁盘中,比较浪费系统盘的空间,需要自己创建一个仓库文件夹,并修改配置文件
在这里插入图片描述

2.镜像仓库

中央仓库 :在 maven 软件中内置一个远程仓库地址https://repo.maven.apache.org/maven2/,它是中央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件。

为了解决中央仓库资源下载慢的问题,我们要配置镜像仓库。

这里介绍配置阿里云镜像仓库

<mirror>

<id>aliyun</id>

<mirrorOf>central</mirrorOf>

<name>aliyun</name>
<!-- URL -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

5、私服(拓展)

Nexus是SonaType公司的一款maven私服产品

下载地址: https://help.sonatype.com/repomanager3/download

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ 基础思维导图(三)异常-STL

1、异常 异常举例 BankAccount.h #ifndef BANK_ACCOUNT_H #define BANK_ACCOUNT_H#include <iostream> #include <stdexcept>class InsufficientFundsException : public std::runtime_error { public:InsufficientFundsException() : std::runtime_error("I…

【C++入门】详解(中)

目录 &#x1f495;1.函数的重载 &#x1f495;2.引用的定义 &#x1f495;3.引用的一些常见问题 &#x1f495;4.引用——权限的放大/缩小/平移 &#x1f495;5. 不存在的空引用 &#x1f495;6.引用作为函数参数的速度之快&#xff08;代码体现&#xff09; &#x1f4…

人工智能之数学基础:函数间隔和几何间隔

本文重点 在机器学习领域,尤其是支持向量机(SVM)算法中,函数间隔(Functional Margin)和几何间隔(Geometric Margin)是两个至关重要的概念。它们不仅用于描述数据点到超平面的距离,还直接影响到分类器的性能与泛化能力。本文将详细介绍这两个概念,并探讨它们之间的区…

UE5 打包项目

UE5 打包项目 flyfish 通过 “文件”->“打开项目”&#xff0c;然后在弹出的对话框中选择项目文件&#xff08;通常是以.uproject为后缀的文件&#xff09; 选择目标平台&#xff1a; 在 UE5 主界面中&#xff0c;找到 “平台”&#xff08;Platforms&#xff09;。根据…

.NET framework、Core和Standard都是什么?

对于这些概念一直没有深入去理解&#xff0c;以至于经过.net这几年的发展进化&#xff0c;概念越来越多&#xff0c;越来越梳理不容易理解了。内心深处存在思想上的懒惰&#xff0c;以为自己专注于Unity开发就好&#xff0c;这些并不属于核心范畴&#xff0c;所以对这些概念总是…

《python》——jieba库

jieba库 jieba简介 jieba 是一个非常受欢迎的中文分词库 中文分词&#xff1a;这是 jieba 库最主要的功能。它能够将一段中文文本按照词语进行切分。例如&#xff0c;对于句子 “我爱自然语言处理”&#xff0c;jieba 分词后可以得到 [“我”, “爱”, “自然语言”, “处理”…

实训云上搭建集群

文章目录 1. 登录实训云1.1 实训云网址1.2 登录实训云 2. 创建网络2.1 网络概述2.2 创建步骤 3. 创建路由器3.1 路由器名称3.1 创建路由器3.3 查看网络拓扑 4. 连接子网5. 创建虚拟网卡5.1 创建原因5.2 查看端口5.3 创建虚拟网卡 6. 管理安全组规则6.1 为什么要管理安全组规则6…

python-42-使用selenium-wire爬取微信公众号下的所有文章列表

文章目录 1 seleniumwire1.1 selenium-wire简介1.2 获取请求和响应信息2 操作2.1 自动获取token和cookie和agent2.3 获取所有清单3 异常解决3.1 请求url失败的问题3.2 访问链接不安全的问题4 参考附录1 seleniumwire Selenium WebDriver本身并不直接提供获取HTTP请求头(header…

【理论】测试框架体系TDD、BDD、ATDD、MBT、DDT介绍

一、测试框架是什么 测试框架是一组用于创建和设计测试用例的指南或规则。框架由旨在帮助 QA 专业人员更有效地测试的实践和工具的组合组成。 这些指南可能包括编码标准、测试数据处理方法、对象存储库、存储测试结果的过程或有关如何访问外部资源的信息。 A testing framewo…

详细全面讲解C++中重载、隐藏、覆盖的区别

文章目录 总结1、重载示例代码特点1. 模板函数和非模板函数重载2. 重载示例与调用规则示例代码调用规则解释3. 特殊情况与注意事项二义性问题 函数特化与重载的交互 2. 函数隐藏&#xff08;Function Hiding&#xff09;概念示例代码特点 3. 函数覆盖&#xff08;重写&#xff…

计算机系统组成(计算机组成原理 基础)

文章目录&#xff1a; 一&#xff1a;体系结构 1.系统组成 1.1 硬件系统 1.2 软件系统 2.工作原理 2.1 冯诺依曼体系 2.2 指令和指令系统 3.性能指标 二&#xff1a;硬件系统 1.主机 1.1 CPU 1.2 内存 2.外设 2.1 外存 2.2 输入设备 2.3 输出设备 2.4 适配器 …

STM32 : 波特率发生器

波特率发生器 1. 发送器和接收器的波特率 波特率寄存器 (BRR): 在串行通信中&#xff0c;发送器和接收器的波特率是由波特率寄存器&#xff08;BRR&#xff09;中的一个值 DIV 来确定的。 2. 计算公式 计算公式: 详细解释 1. 波特率寄存器 (BRR) BRR: 波特率寄存器是一…

全新市场阶段, Plume 生态不断壮大的 RWAfi 版图

加密市场在 2024 年迎来了新的里程碑。BTC 不仅成功推出 ETF&#xff0c;以 BTC 为代表的主流加密货币还在一系列传统金融机构的推动下逐步与主流金融市场接轨。与此同时&#xff0c;随着特朗普成功当选下一任美国总统&#xff0c;他承诺推出一系列友好的加密政策&#xff0c;并…

MySQL的小问题

编码问题 不管官方使用什么编码&#xff1a;latin1、gbk、utf8、utfmb4。统一使用utfmb4 MySQL中的utf8并不是utf-8&#xff0c;它省略了一个字节&#xff0c;只是用三个字节存储所有的符号&#xff0c;utfmb4才是utf-8 远程登录问题&#xff1a; MySQL官方默认没有启动远程…

单片机(MCU)-简单认识

简介&#xff1a; 内部集成了CPU&#xff0c;RAM&#xff0c;ROM&#xff0c;定时器&#xff0c;中断系统&#xff0c;通讯接口等一系列电脑的常用硬件功能。 单片机的任务是信息采集&#xff08;依靠传感器&#xff09;&#xff0c;处理&#xff08;依靠CPU&#xff09;&…

金融项目实战 01|功能测试分析与设计

前置内容&#xff1a;金融项目准备的内容笔记可直接看如下笔记 只看&#xff1a;一、投资专业术语 和 二、项目简介 两部分文章浏览阅读2.3k次&#xff0c;点赞70次&#xff0c;收藏67次。安享智慧理财金融系统测试项目&#xff0c;测试用例&#xff0c;接口测试&#xff0c;金…

vue-cli项目配置使用unocss

在了解使用了Unocss后&#xff0c;就完全被它迷住了。接手过的所有项目都配置使用了它&#xff0c;包括一些旧项目&#xff0c;也跟同事分享了使用Unocss的便捷性。 这里分享一下旧项目如何配置和使用Unocss的&#xff0c;项目是vue2vue-cli构建的&#xff0c;node<20平常开…

5个不同类型的数据库安装

各种社区版本下载官方地址&#xff1a;MySQL :: MySQL Community Downloads 一、在线YUM仓库&#xff08;Linux&#xff09; 选择 MySQL Yum Repository 选择对应版本下载仓库安装包&#xff08;No thanks, just start my download.&#xff09; 下载方法1&#xff1a;下载到本…

《CPython Internals》阅读笔记:p97-p117

《CPython Internals》学习第 7 天&#xff0c;p97-p117 总结&#xff0c;总计 21 页。 一、技术总结 1.词法分析(lexical analysis) 根据《Compilers-Principles, Techniques, and Tools》(《编译原理》第2版)第 5 页&#xff1a;The first phase of a compiler is called …

js逆向说明

一 负载的内容传输用这个格式 Content-Type: multipart/form-data Content-Type 是 HTTP 请求头中的一个字段&#xff0c;它告诉服务器请求体的类型。在这个例子中&#xff0c;Content-Type 的值为 multipart/form-data&#xff0c;这表示请求体采用了 multipart/form-data 格…