windows系统中安装maven用来编译项目

news2024/9/24 15:22:15

1


为什么要安装maven

    作为一个编程小白,我们先看一下以前学java的时候,下载一个项目源码,是不是需要把所依赖的第三方jar包一起跟着源码打包放一起,这样别人的代码才能运行起来。这种方式不利于对jar包的管理,后来就出现了maven。maven的出现,有效的解决了这一问题,需要用到什么jar包的时候,只需要在配置文件里面配置一下就行,执行相关的命令会自动的把你所需要的包以及对应的版本给下载到你电脑本地。现在,你要把你写的代码传给别人的话,源码里面就可以不放那些一个个体积很大的jar包了。

    作为一名测试人员,我们的简历上总是写着会搭建测试环境的技能,但绝大多数人都仅仅只是会拿着开发给你的包传到服务器上去覆盖一下,至于包怎么来的,很多人其实是不太清楚的。学会maven,你就有机会能够自己打包,并且学会maven之后,对你以后规范项目测试流程以及版本分支管控都有着一定的帮助。

2


下载及安装

可以进入官网下载:https://maven.apache.org/download.cgi

也可以从我网盘里面直接下载:在公众号后台回复【测试小白实战系列】

11a852b0452c757b6603ed774d95a2e7.png

这里的安装包是一个压缩包,解压之后配置一下环境变量就行:

新建一个M2_HOME,指向maven解压后的路径,我这里是D:\software\apache-maven-3.8.6

然后在Path中将%M2_HOME%\bin追加到后面:

3eb5ed3c4513d71525b5845041c3fe9e.png

然后打开cmd窗口输入mvn -v,会打印出maven的版本信息即表示配置成功:

a3154743b0f1806851d075e8c06f4b33.png

注意事项

maven的运行需要依赖java的运行环境,因此,要先确保电脑上安装和配置好了jdk的环境,不知道怎么操作的,可以看下面的文章:

windows本地安装openjdk环境  或者  Java环境搭建

3


更改maven的settings.xml配置文件

今天来简单的认识一下 maven的settings.xml配置文件,在这个xml文件里面,可以配置很多有用的信息,比如,

1、可以指定下载后的jar包默认都存放在哪里,默认是${user.home}/.m2/repository,我这里为了以后查找方便,改成D盘的maven_jar文件夹:

<localRepository>D:\maven_jar</localRepository>

2、maven默认会从它的官网去下载jar包,这样下载比较慢,一般我们都会改成用阿里云的镜像地址,当然,如果在公司内部的话,我们一般会搭建自己的镜像仓库,这样的话,内网下载会快一些。这里我们才有阿里云的镜像地址,配置如下:

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

我这里附上删减掉配置文件里面多余配置之后,遗留下来的文件内容,大家可以复制后直接替换文件:

<?xml version="1.0" encoding="UTF-8"?>
<settings
    xmlns="http://maven.apache.org/SETTINGS/1.2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
    <localRepository>D:\maven_jar</localRepository>
    <pluginGroups></pluginGroups>
    <proxies></proxies>
    <servers></servers>
    <mirrors>
        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
    <profiles></profiles>
</settings>

4


拿一个项目小试牛刀

之前已经教大家怎么去使用git下载一个开源项目的代码,还没掌握的可以继续看看之前的文章:windows本地安装git,并下载开源项目代码到本地

那么接下来,我们进入到 D:\RuoYi-Vue目录后,打开cmd窗口,然后执行命令:mvn -U compile

6f4dccc849c3084331aca73ff201add4.png

34c9509e9cb227a9335aee63276a394b.png

看到后面的SUCCESS就表示代码是编译成功的啦,这个时候可以继续执行mvn package命令进行打包操作试试:

4bc1400c07c7d75f293c8144bdac054b.png

从图中可以看到打好了一个jar包,这个jar包就是我们后面要学习的后端的部署包,我们可以先进入目录去启动一下看看效果:

java -jar  ruoyi-admin.jar  

a6f05cf2f993a5c7f23b5531f28f84d7.png

当然,最终这个肯定会以启动失败告终的,因为我们还没有导入数据库的脚本啥的,会连接不上数据库,再往下看日志就会看到有相关报错的提示:

75c9a7d85a986431439d5db269804c5e.png

当然,这篇文章的学习目的不在于怎么去启动这个项目,暂时先简单了解一下maven是干什么的,有什么用以及为什么要去安装这个就行。

之前也提到了,使用maven之后,可以帮我们去下载项目所依赖的jar包,那么,根据我们上面更改的配置文件,这些jar包的话,都会帮我下载到D:\maven_jar这个目录,下面我们看一下这个目录下面是不是有jar包呢:

82e96d2986908e74445e749897686ee1.png

从上图可以看到,jar包会按照java里面的包名的路径层级以及对应的版本去创建文件夹存放。以后其他项目的代码里面只要引用了对应版本的jar包,就会优先从本地的这个位置去找,还是挺方便的。

关注我,在后面的文章中,将带你一步一步去在本地启动这个项目来实战练习。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣sql入门篇(三)

力扣sql入门篇(三) 1 修复表中的名字 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT user_id,CONCAT(upper(substring(name,1,1)),lower(substring(name,2,length(name)-1))) name FROM Users ORDER BY user_id;1.3 运行截图 2 按日期分组销…

计算机网络学习笔记(谢希仁版本)

计算机网络学习笔记 1. 概述 1.1 计算机网络在信息时代的作用 互联网基本特点&#xff1a; 连通性&#xff1a;互联网上用户不管距离多远&#xff0c;都能通信&#xff0c;就像这些用户终端都彼此连通 共享性&#xff1a;指资源共享&#xff0c;包含信息、软件、硬件等共享…

WebRTC的拥塞控制技术(Congestion Control)

\1. 概述 对于共享网络资源的各类应用来说&#xff0c;拥塞控制技术的使用有利于提高带宽利用率&#xff0c;同时也使得终端用户在使用网络时能够获得更好的体验。在协议层面上拥塞控制是TCP的一个总要的组成部分&#xff1b;但是对于非面向链接的传输层协议&#xff0c;如UDP&…

智慧城管违规摆摊沿街晾晒识别检测 python

智慧城管违规摆摊沿街晾晒识别检测通过opencvpython对现场画面中进行7*24小时不间断实时监测&#xff0c;当opencvpython城管违规摆摊沿街晾晒识别检测监测到沿街晾晒违规摆摊占道经营时&#xff0c;立即抓拍告警。OpenCV的全称是Open Source Computer Vision Library&#xff…

小侃设计模式(十九)-解释器模式

1.概述 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种使用相对较少的模式&#xff0c;主要使用在编译解释等场景&#xff0c;例如&#xff1a;编译器、规则引擎解释、正则表达式解析等&#xff0c;这些语言又被称为领域特定语言&#xff08;Domain Specific L…

【数据结构与算法】数据结构介绍与稀疏数组相关操作

文章目录一 数据结构介绍1 数据结构和算法的重要性2 数据结构和算法的关系3 线性结构和非线性结构&#xff08;1&#xff09;线性结构&#xff08;2&#xff09;非线性结构二 稀疏数组1 应用场景2 基本概念&#xff08;1&#xff09;基本介绍&#xff08;2&#xff09;压缩策略…

并发编程——1.进程与线程

目录1.进程与线程1.1.概述1.2.并行与并发本文笔记整理来自黑马视频https://www.bilibili.com/video/BV16J411h7Rd/?p1&#xff0c;相关资料可在视频评论区进行获取。 1.进程与线程 1.1.概述 &#xff08;1&#xff09;进程 程序由指令和数据组成&#xff0c;但这些指令要运…

2022 年度作品优秀大赏 | 开发者说·DTalk

岁聿云暮之际&#xff0c;回首 2022&#xff0c;开发者们一直在迈着坚定的步伐向顶峰攀登&#xff0c;我们也竭尽所能不断为大家提供帮助——操作系统 Android 13 完成 Beta 版到正式版的蜕变&#xff0c;开发工具 Flutter 3.3 全力支持您的跨平台之旅&#xff0c;应用平台 Goo…

并行、并发、同步、异步、阻塞、非阻塞

并行 是指两个或者多个事件在同一时刻发生。并行是在不同实体上的多个事件。 并行针对多核 CPU 而言&#xff0c;它指的是多个核心同时执行多个任务的能力 单核 CPU 无法并行&#xff0c;并行只可能发生在多核 CPU 中。 并发 是指两个或多个事件在同一时间间隔发生。并发是…

【观察】让行业AI“触手可及”,NVIDIA创新与实践“从未止步”

毫无疑问&#xff0c;今天AI正与产业结合得越来越紧密&#xff0c;从自动驾驶&#xff0c;到智慧医疗&#xff0c;智慧金融、智慧城市等&#xff0c;AI已经开始渗透到我们生活的方方面面。事实上&#xff0c;即便目前来自传统行业用户的AI转型需求尚未完全激活爆发&#xff0c;…

第一篇 AlexNet——论文翻译

文章目录摘要1 简介2 数据集3 架构 3.1 ReLU非线性3.2 多GPU训练3.3 局部响应归一化3.4 重叠池化3.5 整体架构4 减少过拟合4.1 数据增强4.2 失活(Dropout)5 学习细节6 结果6.1 定性评估7 探讨摘要 论文链接&#xff1a;http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf …

VTK--交互方式vtkInteractorStyleTrackballCamera

前言&#xff1a;本博文主要介绍vtk中基于Camera的交互方式vtkInteractorStyleTrackballCamera 及其子类&#xff0c;小伙伴可以根据需求自定义交互方式。 目录 vtkInteractorStyleTrackballCamera vtkGeoInteractorStyle vtkInteractorStyleImage vtkInteractorStyleMult…

LeetCode刷题复盘笔记—一文搞懂动态规划之152. 乘积最大子数组问题(动态规划系列第三十六篇)

今日主要总结一下动态规划的一道题目&#xff0c;152. 乘积最大子数组 题目&#xff1a;152. 乘积最大子数组 Leetcode题目地址 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;请你找出数组中乘积最大的非空连续子数组&#xff08;该子数组中至少包含一个数字&…

怎样学习线性代数?

最近在看《线性代数的几何意义》这本书&#xff0c;刚好也借用书里的总结&#xff0c;分享一下。 &#xff08;注&#xff1a;本文是一篇我国代数名家丘维声教授在电大讲授线性代数课程时关于如何学好线性代数的综合论述&#xff0c;超牛&#xff01;&#xff09; 初学线性代数…

社区10款年度优秀插件框架盘点!

Cocos 社区年度插件框架 TOP 10以下游戏资源排名不分先后&#xff0c;Cocos Store & Cocos微店 年终元旦限时优惠进行中......作者&#xff1a;Chuan——张川介绍&#xff1a;一款节点树实时预览插件&#xff0c;支持 Cocos Creator 2.x\3.x 引擎版本&#xff0c;除节点预览…

云信小课堂 | 如何管理音视频的通话状态?

2022.12业务背景 用户在实际使用云信音视频通话 2.0 服务中&#xff0c;常常会遇到弱网&#xff0c;掉线等情况&#xff0c;对于这类情况&#xff0c;云信 SDK 提供了自动重连的相关策略&#xff0c;业务层不需要单独处理重连&#xff0c;只需要监听并做好相应的 UI 逻辑。所以…

【OpenCV】使用 Python 的铅笔素描图像

目录&#xff1a;使用 Python 的铅笔素描图像一、前言二、代码实战2.1 导包2.2 读取照片2.3 使用 OpenCV 显示图像2.4 灰度图像2.5 反转图像2.6 模糊图像2.7 减淡和融合三、结果展示五、源代码一、前言 图片在 Python 中表示为一组数字。所以我们可以进行各种矩阵操作来得到令…

跨域问题(三种解决方法)

跨域就是一个域名的网页去请求另一个域名的资源&#xff0c;比如你刚刚在A网站输入了自己的账号密码&#xff0c;然后访问B网站&#xff0c;B网站无法获取账号密码 两个请求的协议&#xff08;比如http&#xff09;&#xff0c;域名&#xff08;比如说localhost或者192.168.0.…

python 时间

目录标题python的时间模块1、时间戳2、时间元组3、获取格式化的时间可以自定义输出格式日期格式化的符号4、显示某月的日历5、sleep模块python的时间模块 1、时间戳 时间戳&#xff0c;以1970为时间基准&#xff0c;但是太过于遥远的时间就不可以了&#xff0c;windows最源支持…

基于springboot实验室管理系统(程序+数据库)

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…