Mac安装配置maven

文章目录

  • 前言
  • 一、Maven介绍
  • 二、下载
  • 三、安装
  • 四、配置环境变量
  • 五、验证
  • 六、maven配置
      • 配置本地仓库
      • 配置远程仓库
  • 七、maven的常用命令
  • 总结


前言

Maven是一个项目管理和构建自动化工具,主要服务于基于Java的软件项目。是我们WEB开发过程中必不可少的工具。


一、Maven介绍

Maven是一个项目管理和构建自动化工具,主要服务于基于Java的软件项目。它使用一个名为POM(Project Object Model,项目对象模型)的XML文件来描述项目的构建过程、依赖关系和其他配置信息。Maven能够使项目构建过程更加标准化,简化项目管理工作。
maven的特点如下:

  • 依赖管理:Maven通过中央仓库来管理项目依赖,自动处理依赖的传递性问题,确保项目构建时依赖的正确性和一致性。

  • 项目信息管理:Maven使用POM文件来描述项目的基本属性,包括项目名称、版本、开发者信息、许可证等。

  • 标准化构建生命周期:Maven定义了一系列的构建生命周期阶段,如clean、compile、test、package和deploy,这些阶段可以被自动化执行。

  • 插件和目标:Maven拥有丰富的插件生态系统,每个插件可以执行特定的任务。插件可以绑定到生命周期的特定阶段,以实现复杂的构建逻辑。

  • 跨平台:Maven可以在多种操作系统上运行,因为它是基于Java开发的。

  • 可扩展性:用户可以编写自定义插件来扩展Maven的功能。

  • 继承和聚合:Maven支持项目继承,允许创建层次结构的项目结构。此外,它还支持多模块项目(聚合)的构建。

Maven是Java开发者常用的工具之一,它帮助开发者从繁琐的项目配置和管理中解放出来,专注于代码开发和业务逻辑实现。

二、下载

访问官网进行下载,官网地址:https://maven.apache.org/download.cgi

点击超链接进行下载,最新版本Maven
在这里插入图片描述
如果下载历史版本的可以点击 Release Notes,往下滑找到自己想下载的版本。
在这里插入图片描述

三、安装

安装maven是有前置条件的,如下:
在这里插入图片描述
最主要的就是要求已经安装了JDK,并且有JDK版本限制。我安装的3.9.6版本的maven,要求JDK8或以上的。如果不知道如何安装JDK可以参考之前的文章。MacOS安装JDK8

下载完成后,双击解压
在这里插入图片描述
解压后,目录如下:
在这里插入图片描述
将文件夹 apache-maven-3.9.6拷贝或移动至系统目录 /usr/local(可以自定义文件夹路径,到时候需要配置环境变量需要用到)

打开终端,输入命令 sudo mv 然后将 downloads 中的 apache-maven-3.9.6 文件夹拖进来
在这里插入图片描述
然后补充后面路径 /usr/local
在这里插入图片描述
完整命令如下:

sudo mv /Users/Zhuanz1/Downloads/apache-maven-3.9.6 /usr/local

输入命令,查看文件夹

cd /usr/local

输入命令 ll 查看,apache-maven-3.9.6
在这里插入图片描述

四、配置环境变量

打开终端,输入命令

sudo vim ~/.bash_profile 

然后按【 i 】键 进入编辑模式
在这里插入图片描述
在结尾添加Maven配置

export MAVEN_HOME=/usr/local/apache-maven-3.9.6 
export PATH=$PATH:$MAVEN_HOME/bin

然后按【 esc 】键 退出编辑模式
在这里插入图片描述
输入【 :wq 】命令保存并退出
在这里插入图片描述
然后输入命令,使环境变量立即生效

source ~/.bash_profile 

五、验证

输入命令 【mvn -version】
在这里插入图片描述
至此maven安装配置成功

六、maven配置

maven安装成功后,还需要配置本地仓库和远程仓库地址。

配置本地仓库

输入命令打开maven配置文件

sudo vim /usr/local/apache-maven-3.9.6/conf/settings.xml

按【i】进入编辑模式,开始编辑配置文件。找到 localRepository 标签,在注释的下方添加(最好和之前的示例放在一块,不然有可能放错位置,可能解析不了就没法生效了)

<!-- 本地仓库配置  -->
  <localRepository>/Users/maven/repo</localRepository>

在这里插入图片描述

配置远程仓库

配置阿里云远程仓库,镜像源再国内,可以加快下载jar包的速度。

找到 mirrors 标签,先将 原来配置的http://0.0.0.0 给注释了,这个是高版本的maven增加的一个保护机制,如果不注释,那么使用的时候就下载不了jar包。
在这里插入图片描述
然后添加阿里云仓库配置,如下:

<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>aliyun</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

最终如下:
在这里插入图片描述
按 【esc】退出编辑模式,输入【:wq】保存并退出,至此maven的基本配置完成。

七、maven的常用命令

  • mvn clean: 清除项目生成的所有文件。

  • mvn compile: 编译项目的源代码。

  • mvn test: 运行项目的单元测试。

  • mvn package: 将编译的代码打包成可分发的格式(如JAR)。

  • mvn install: 将打包的项目安装到本地仓库,供其他项目作为依赖使用。

  • mvn deploy: 将最终的包部署到远程仓库。


总结

本篇文章简单介绍了maven的特点,讲述了maven的下载安装和配置。

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

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

相关文章

支持北斗卫星授时的工厂NTP电子钟,打造智能化工厂时间环境

在当今数字化、智能化的工业时代&#xff0c;时间的精准性和同步性对于工厂的高效运转至关重要。支持北斗卫星授时的工厂 NTP 电子钟的出现&#xff0c;为打造智能化工厂时间环境提供了有力支撑。 一、应用原因 工厂是一个复杂且高度协作的生产环境&#xff0c;精确一致的时间是…

linux 错误记录(三)

这里的内核源码路径&#xff1a; cd /usr/src/linux-headers-5.4.0-150-generic/ 内核版本&#xff1a; $ uname -r 5.4.0-150-generic 错误现象 ./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory 搜索后是有的 …

深度学习之基于Tensorflow图像分类模型生成与读取

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 图像分类是计算机视觉领域的重要任务之一&#xff0c;也是深度学习技术的一个核心应用。通过构…

数据库操作(函数)

函数是一段可以直接被另外一段程序调用的程序或代码 一。字符串函数 1.concat(s1,s1....sn)&#xff1a;字符串拼接&#xff0c;将s1&#xff0c;s2&#xff0c;sn拼接为一个字符串 例如&#xff1a; select concat("hello","world"); 2.lower(str&…

Google的MLP-MIXer的复现(pytorch实现)

Google的MLP-MIXer的复现&#xff08;pytorch实现&#xff09; 该模型原论文实现用的jax框架实现&#xff0c;先贴出原论文的代码实现&#xff1a; # Copyright 2024 Google LLC. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may …

【杂七杂八】Huawei Gt runner手表系统降级

文章目录 Step1&#xff1a;下载安装修改版华为运动与健康Step2&#xff1a;在APP里进行配置Step3&#xff1a;更新固件(时间会很长) 目前在使用用鸿蒙4 111版本的手表系统&#xff0c;但是感觉睡眠检测和运动心率检测一言难尽&#xff0c;于是想到是否能回退到以前的版本&…

从需求角度介绍PasteSpider(K8S平替部署工具适合于任何开发语言)

你是否被K8S的强大而吸引&#xff0c;我相信一部分人是被那复杂的配置和各种专业知识而劝退&#xff0c;应该还有一部分人是因为K8S太吃资源而放手&#xff01; 这里介绍一款平替工具PasteSpider&#xff0c;PasteSpider是一款使用c#编写的linux容器部署工具(使用PasteSpider和…

算法学习:快速排序

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f680; 引言&#x1f4cc; 快速排序算法核心思想1. 选择基准值&#xff08;Pivot&#xff09;2. 分区操作&#xff08;Partitioning&#xff09;3. 递归排序子序列 &#x1f4cc; JavaScript 实现1. 快速排序主函数2…

Mac 安装 git

文章目录 前言一、介绍二、下载三、验证四、配置五、Git常用命令六、git提交和撤销工作流程代码提交和提交同步代码撤销和撤销同步 FAQ1.homebrew 下载解决方法一&#xff08;强烈推荐&#xff09;&#xff1a;解决方法二&#xff1a; 总结 前言 Git 是一个开源的分布式版本控…

Flutter问题 --- 用web端打开项目提示:The XMLHttpRequest onError callback was called.

跨域问题&#xff1a; 打开当前使用的flutter sdk,找到flutter\packages\flutter_tools\lib\src\web\chrome.dart文件并打开. 在--disable-extensions位置后添加--disable-web-security 找到flutter\bin\cache目录&#xff0c;删除flutter_tools.stamp和flutter_tools.snaps…

为什么说 Redis 是单线程的?——Java全栈知识(25)

为什么说 Redis 是单线程的&#xff1f; 我们常说的 Redis 是单线程的&#xff0c;但是我前面在讲持久化机制的时候又说 RDB 的持久化是通过主进程 fork 出一个子进程来实现 RDB 持久化。那么 Redis 到底是多线程还是单线程的呢&#xff1f; Redis 的网络 IO 和键值的读写是单…

一个简约高级视差效果PR动态图文开场视频模板

这是一个高质量且易于定制的pr模板。具有模块化结构&#xff0c;可以轻松更改内容。包括视频教程&#xff0c;即使是新手小白也可以轻松套用模板制作视频。 主要特点&#xff1a; 水平&#xff08;19201080&#xff09;和垂直&#xff08;10801920&#xff09;分辨率&#xff…

如何用PLC监听消防系统485总线通讯获取火灾报警数据

本文由艺捷自动化编写&#xff0c;艺捷自动化旗下产品有艺捷自动化网站和易为二维码说明书小程序&#xff08;微信&#xff09; 前言&#xff0c;先来说一下为什么会有这么一个奇怪的应用。在一个自动化系统改造升级项目中&#xff0c;甲方要求把消防的画面加到他们的后台上。…

判定字符是否唯一

题目链接 判定字符是否唯一 题目描述 注意点 0 < len(s) < 100s[i]仅包含小写字母 解答思路 首先想到的是使用数组存储字母是否出现过&#xff0c;如果多次出现则直接返回false为了不适用额外的数据结构&#xff0c;可以使用位运算判定字符是否唯一&#xff0c;思路…

Kibanna安装配置

环境&#xff1a;windows10、ES&#xff08;8.13.3&#xff09;、Kibana&#xff08;8.13.3&#xff09;、Logstash&#xff08;8.13.3&#xff09; 1.Kibanna安装配置 Kibanna对ES的数据进行可视化、分析和监控 Download Kibana Free | Get Started Now | ElasticDownload K…

如何让大模型更聪明?

如何让大模型更聪明&#xff1f; *随着人工智能技术的飞速发展&#xff0c;大模型在多个领域展现出了前所未有的能力&#xff0c;但它们仍然面临着理解力、泛化能力和适应性等方面的挑战。那么&#xff0c;如何让大模型变得更聪明呢&#xff1f; 方向一&#xff1a;算法创新 …

手写tomcat(Ⅱ)——Socket通信+tomcat静态资源的获取

Socket通信简介 参考文章&#xff1a;socket通讯原理及例程&#xff08;一看就懂&#xff09; socket是介于应用层&#xff08;http协议&#xff09;和传输层&#xff08;TCP/UDP协议&#xff09;之间的一层虚拟层 Socket是一个程序&#xff0c;符合TCP/UDP协议的规范&…

GNU Radio之OFDM Divide和Matrix Transpose底层C++实现

文章目录 前言一、OFDM Divide 模块1、简介2、模块作用3、参数意义4、C 具体实现 二、Matrix Transpose 模块1、简介2、参数意义3、C 具体实现 前言 gr-radar 中的 OFDM Divide 模块是GNU Radio中的一个组件&#xff0c;专门用于处理正交频分复用&#xff08;OFDM&#xff09;…

力扣HOT100 - 72. 编辑距离

解题思路&#xff1a; 动态规划 class Solution {public int minDistance(String word1, String word2) {int n1 word1.length();int n2 word2.length();int[][] dp new int[n1 1][n2 1];for (int j 1; j < n2; j) dp[0][j] dp[0][j - 1] 1;for (int i 1; i < …

【Android安全】AOSP版本对应编号| AOSP版本适配Pixel或Nexus型号 | 驱动脚本下载地址

AOSP版本对应编号 https://source.android.com/docs/setup/about/build-numbers?hlzh-cn#source-code-tags-and-builds 例如android-8.1.0_r1 对应的编号是OPM1.171019.011 可以适配Pixel 2 XL AOSP驱动脚本下载 编译AOSP时&#xff0c;需要Google的驱动&#xff0c;后面才…