Maven 基础之简介,基础配置

news2024/11/24 9:08:47

Maven

在这里插入图片描述

基本概念

Maven 是基于项目对象模型(Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

Maven 主要有 2 个功能:「项目构建」和「依赖管理」。

🖋 说明
由于无论是 Eclipse 还是 IDEA 都内置了 maven ,所以并没有什么必要去「单独下载 maven ,并在命令行中使用」。通常我们都是在开发工具中基于图形化界面进行操作。

当然,图形化操作的背后本质上还是执行了对应了 maven 命令。所以,你还是有必要去了解一下 maven 命令行操作。我会在本系列最后章节输出相关的命令和使用。

提前做的配置工作

🖋 说明
以下内容对未来的操作会有重要影响,因此在学习、使用 maven 之前,我们先执行一下这些配置操作。

在使用 Maven 的过程中,Maven 会通过互联网从一个名为"中央仓库"的地方下载所需的各种包,但是由于这个下载地址是在国外,因此下载速度很慢且不稳定。阿里(还有其他的公司和机构)对这个中央仓库提供了"镜像服务",并保持持续的更新。

在正式使用 maven 之前,我们提前配置好阿里的 maven 仓库,以避免白白浪费时间。

第 1 步:在 C:\Users\<用户名> 目录下创建一个名为 .m2 的文件夹

这里有几个注意事项:

  1. 这个目录是 Windows 操作系统的用户家目录,可以通过 %homepath% 快速进入到这个目录;

  2. 如果这个文件夹存在,那么就直接利用它,不需要再创建了;

  3. 由于 windows 图形化界面中认为 .m2 这个文件名"有问题",所以这里直接使用命令行命令创建它:md .m2

第 2 步:在 .m2 中创建 settings.xml 配置文件

将下面的 settings.xml 配置文件复制到 .m2 中目录中,即可。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
        http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <!-- https://maven.aliyun.com/mvn/guide -->
  <mirrors>
    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
  </mirrors>

  <profiles>
    <profile>    
      <id>jdk-1.8</id>    
      <activation>    
        <activeByDefault>true</activeByDefault>    
        <jdk>1.8</jdk> <!-- 当 jdk 环境版本为 1.8 时,此 profile 被激活 -->
      </activation>    
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>    
        <maven.compiler.target>1.8</maven.compiler.target>    
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>
  </profiles>

<!-- 如果有需要,这个全局配置文件中还可以进行其它方面的配置。不过,我们暂时不涉及。-->
</settings>

这里有几个注意事项:

  1. 在这个配置文件中,我们主要配置了"中央仓库"的网址。从默认的、外网仓库网址改成了阿里提供的国内镜像服务器网址(从而提高未来使用中下载包的速度)

  2. 如果 .m2 中原本就有 settings.xml 配置文件,而那么稳妥起见,你就需要将我们的模板文件中的内容"抠"出来,复制进去(而不是贸然的直接复制覆盖源文件,以免出现原配置丢失的情况)

第 3 步:在 .m2 中创建 cleanLastUpdated.bat 脚本文件

这个脚本文件是为了解决 .lastUpdated 文件问题。

将下面的 cleanLastUpdated.bat 脚本文件复制到 .m2 中目录中,即可。

以下内容是 Windows 下的“清除脚本”的内容。REPOSITORY_PATH 变量的值根据具体情况的不同可以有调整。

@echo off

set REPOSITORY_PATH=C:%HOMEPATH%\.m2\repository
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
    echo %%i
    del /s /q "%%i"
)
rem 搜索完毕
pause

这里有几个注意事项:

  1. 这个脚本文件是用来清除 %homepath%/.m2/repository 中的 .lastUpdated 文件的。使用时双击它即可。

  2. 如果你改动过配置,使得你的本地仓库并不在默认的 %homepath%/.m2/repository 中,而你还想利用这个脚本文件,那么你就需要打开它、编辑它,改成符合你的需要的情况。

其它

在未来,settings.xml 的"旁边"会有一个名为 “repository” 的文件夹,你从或阿里的镜像服务器(即,中央仓库)下载的各种包,就会被放在这里面。这个 “repository” 文件夹,也被称为 maven 的 “本地仓库” 。

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

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

相关文章

Godot 4 源码分析 - 增加管道通信

学习研究Godot 4&#xff0c;很爽&#xff0c;虽然很庞杂&#xff0c;但相对于自己的水平来说&#xff0c;很强大&#xff0c;尤其是vulkan这块直接打包可用&#xff0c;省得自己从头琢磨。 一点一点地消化、优化与完善&#xff0c;最终才能成为自己的。 这段时间就在Godot的…

POSIX线程编程

死在山野的风里&#xff0c;活在自由的梦里 本专栏参考教材是四川轻化工大学陈年老师的linux实验指导手册&#xff08;含学习通的一些程序笔记&#xff09;。 POSIX线程编程 1.线程是什么2.创建线程创建一个用户级的线程&#xff0c;实现在线程中更改进程&#xff08;主线程&a…

Bean小结

Bean是Spring框架中最核心的两个概念之一&#xff08;另一个是面向切面编程AOP&#xff09;。 Bean 定义 Spring 官方文档对 bean 的解释是&#xff1a; In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC contain…

从Vue2到Vue3【三】——Composition API(第三章)

系列文章目录 内容链接从Vue2到Vue3【零】Vue3简介从Vue2到Vue3【一】Composition API&#xff08;第一章&#xff09;从Vue2到Vue3【二】Composition API&#xff08;第二章&#xff09;从Vue2到Vue3【三】Composition API&#xff08;第三章&#xff09;从Vue2到Vue3【四】C…

webrtc QOS方法二.4(flexfec 实现可优化点)

一、冗余报文和媒体报文组织结构优化点 以单帧10个媒体报文&#xff0c;冗余度20%为例。这里webrtc输出要有10个媒体包2个冗余包。webrtc输出的报文序列如下&#xff1a; 代码实现如下&#xff1a; UlpfecGenerator::AddPacketAndGenerateFec&#xff1a;攒够足够的帧 Forwar…

使用springboot进行后端开发100问

properties和yaml文件怎么互转 安装插件 properties文件和yaml文件区别 properties 文件通过“.”和“”赋值&#xff0c;值前不加空格&#xff0c;yaml通过“:”赋值&#xff0c;值前面加一个空格&#xff1b;yaml文件缩进用空格&#xff1b; properties只支持键值对&#x…

C++实现LRU(逐句讲解)

使用双向链表解决此问题&#xff0c;因为双向链表可以很容易的获取到头结点和尾结点。题目要求 get 和 put 要在O(1)的时间复杂度下运行&#xff0c;很显然要用set或map。根据题意&#xff0c;应使用map。 unordered_map<int,Node*> cache; map->first为Node中的key&a…

查看RabbitMQ日志---trace插件的使用

我的RabbitMQ是安装在docker里面的 所以我以下的方法都是根据这个路径去操作的 如果RabbitMQ安装在其他地方 请自行百度 1. 显示正在运行的RabbitMQ容器的名称或ID&#xff1a; docker ps这将启动所有正在运行的 Docker 容器&#xff0c;并包含 RabbitMQ 容器的信息。 使用…

【Docker】Docker的数据管理

目录 一、Docker 的数据管理1.1数据卷1.2 数据卷容器1.3端口映射1.4容器互联&#xff08;使用centos镜像&#xff09; 二、Docker镜像的创建2.1基于现有镜像创建2.2&#xff0e;基于本地模板创建2.3 基于Dockerfile 创建联合文件系统&#xff08;UnionFS&#xff09;镜像加载原…

【云原生】Docker网络及Cgroup资源控制

一、Docker网络 1.docker网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。…

【Linux网络】 网络套接字(二)socket编程_UDP网络程序

目录 socket 编程接口socket 常见的APIsockaddr结构 UDP网络程序简单例子服务端代码编写服务端创建套接字服务端绑定运行服务器测试启动服务端 客户端代码编写客户端创建套接字启动客户端本地测试INADDR_ANY服务端接收信息发回到客户端如何进行网络测试 socket 编程接口 socke…

【机器学习】吃瓜教程 | 西瓜书 + 南瓜书 (1)

文章目录 一、绪论1、什么是机器学习&#xff1f;2、基本术语3、假设空间4、归纳偏好5、发展历程 二、模型评估与选择A、一种训练集一种算法2.1 经验误差 与 过拟合2.2 评估方法a) 留出法b) 交叉验证法c) 自助法d) 调参与最终模型 2.3 性能度量a) 错误率与精度b) 查准率、查全率…

RT-Thread快速入门-内核移植

1RT-Thread快速入门-内核移植 RT-Thread 快速入门系列前面的文章介绍了内核相关的知识&#xff0c;以及内核提供的接口函数和如何使用。 本篇文章主要介绍如何将 RT-Thread 内核移植到某个硬件平台之上。移植分为两部分&#xff1a; CPU 架构移植 BSP 移植 也就是将 RT-Th…

MySQL第二课表的增删插改

&#x1f49b; 后端进行的表的操作增删查改 现在是建了一个成绩表&#xff0c;注意哈。 decimal(2,1). 2是M表示有两个有效数字长度&#xff0c;1是D的长度&#xff0c;即小数点后有一位(10分制) &#x1f493;开始 1.增加&#xff1a; insert into 表名 values(值&#xff0…

安装VS Code 和 MiKTeX开发环境

下载&#xff1a; Getting MiKTeX 然后以管理员方式运行安装。 配置VS Code 之后配置VS Code&#xff0c;选择扩展&#xff08;两个位置都可以&#xff09;&#xff0c;然后搜索Latex&#xff1a; 然后打开设置&#xff1a; 这样就打开了setting.json文件&#xff0c; 然后…

SQL注入之Oracle环境搭建

SQL注入之Oracle环境搭建 前言 Oracle Database&#xff0c;又名Oracle RDBMS&#xff0c;或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统&#xff0c;系统可移植性…

gitlab上传新项目全过程

gitlab上传新项目全过程 一、前期准备1.1 gitlab配置1.2 gitlab安装1.3 需要在gitlab上新建一个空项目 二、本地操作2.1 gitlab上传新项目全过程2.2 gitlab将远程项目拉取到本地全过程 三、常见问题及解决四、常用命令4.1 代码更新提交命令4.2 其他指令 一、前期准备 1.1 gitl…

less中引入自定义字体文件

前言 一般做后台管理系统UI没有影响要求可以不使用自定义字体。但是在大屏项目中&#xff0c;高度自定义化&#xff0c;就肯定需要UI导出字体文件&#xff0c;然后放到服务器上或者是我们项目文件中&#xff0c;我们前端引入后在页面中使用。 下面以放在项目文件中为例。 各…

【linux】五种IO模型与非阻塞IO

文章目录 一、IO的概念二、IO的五种模型2.1 概念2.2 对比五种IO 三、非阻塞IO3.1 fcntl文件描述符控制3.2 以非阻塞轮询方式读取标准输入 一、IO的概念 前面我们说过其实IO就是拷贝数据。 先说一下读取的接口&#xff1a; 当系统调用read/recv的时候会有两种情况 ①没有数据&a…

【C语言】指针进阶(3)

目录 指针和数组笔试题解析 一维数组 字符数组 二维数组 指针笔试题 在前面两篇文章&#xff0c;我们已经学完了指针进阶的所有知识点。在这篇文章中&#xff0c;我们主要学习的是一些常见的笔试题的总结。 指针和数组笔试题解析 在做题之前&#xff0c;我们先复习一下之…