maven仓库的作用以及安装 , DEA配置本地Maven

news2024/11/13 14:41:45

ay12-maven

主要内容

  1. Maven的作用
  2. Maven仓库的作用
  3. Maven的坐标概念
  4. Maven的安装
  5. IDEA配置本地Maven

一、maven概述

1.1、项目开发中的问题

在这里插入图片描述

1、我的项目依赖一些jar包,我把他们放在哪里?直接拷贝到项目的lib文件夹中?
   如果我开发的第二个项目还是需要上面的那些jar包,再把它们复制到我当前项目lib中?
   那如果现在是第三次了,再复制一次吗?
   -----这样真的好吗?这样子操作会引起什么样的问题?
  以上操作会出现的问题:重复存放jar包;容易出现jar包冲突;手动拷贝jar包容易缺少一些jar包。
  解决方案:用maven来管理jar包 

2、我写了一个数据库相关的通用类,并且推荐给了其他项目组,现在已经有5个项目组使用它了,今天我发现了一个bug,并修正了它,我会把jar包通过邮件发给其他项目组。
-----这样真的好吗?那如果有新的bug出现,还要改呢?
以上操作会出现的问题:需要开发人员每次都手动接收新的jar包并替换掉本地的jar包,麻烦。
解决方案:用maven来管理jar包

注意:在maven中所描述的依赖就是我们平常使用的第三方的jar包。

1.2、maven是什么

1.2.1 maven定义
	Maven是一个项目管理工具。它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
																			---《百度百科》
 maven:本质上是一个软件,用来管理项目的。																												   
1.2.2 mven的作用
  1. 项目构建管理: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。
  2. 管理依赖(jar包): maven能够帮我们统一管理项目开发中需要的jar包;
  3. 管理插件: maven能够帮我们统一管理项目开发过程中需要的插件;

二、maven快速入门

2.1、maven的下载与安装

下载

官方网站:http://maven.apache.org/
下载页面:http://maven.apache.org/download.cgi

在这里插入图片描述

注:本教程使用的是3.3.9版本的maven。

安装

​ maven安装包下载完成后是一个压缩文件,如下图所示:

在这里插入图片描述

​ 我们需要将压缩包解压到一个没有中文,空格或其他特殊字符的文件夹内即可使用:

在这里插入图片描述

2.2、maven安装目录简介

在这里插入图片描述

目录名功能说明
bin二进制的可执行文件,如:mvn.cmd是maven的核心可执行文件
boot第三方类加载器插件,类似于ClassLoader
conf配置文件夹,其中的settings.xml是用于配置本地仓库的
libmaven自身运行所需要的jar包

2.3、maven配置-MAVEN_HOME

2.3.1 配置JAVA_HOME

​ 3版本的maven软件依赖1.7或以上版本的JDK,所以安装maven之前需要确认jdk的版本和JAVA_HOME是否正确配置:

在这里插入图片描述

注意:JAVA_HOME路径需要设置成bin目录的上一级目录

2.3.2配置MAVEN_HOME

​ 按照上面JAVA_HOME的配置方式,将maven的安装目录配置到环境变量中。MAVEN_HOME=maven压缩包解压目录,就是bin的上一级目录。

第一步:新增环境变量:MAVEN_HOME

在这里插入图片描述

第二步:在path环境变量中添加:%MAVEN_HOME%\bin

在这里插入图片描述

第三步:测试:在cmd控制台中输入命令: mvn -version ;如果出现以下maven的版本信息,则说明maven的安装与环境变量的配置均正确;

在这里插入图片描述

说明:出现如上信息说明maven安装和配置环境变量都成功。

2.4、maven仓库介绍

仓库就是一个目录(文件夹),这个目录被用来存储我们项目的所有依赖(就是jar包)和插件。

仓库包括两类仓库:

​ 1)本地仓库

​ 2)远程仓库

​ 远程仓库又包括两类:

​ a:中央仓库

​ b:私服

具体分类如下图所示:

在这里插入图片描述

2.4.1、maven本地仓库配置
2.4.1.1 本地仓库是什么

​ 本地仓库就是本地目录(文件夹),这个目录被用来存储我们项目的所有依赖(就是jar包),本地仓库供你电脑上所有项目使用,maven所有的jar包都是从远程仓库下载到本地仓库.

2.4.1.2 配置本地仓库

​ 本地仓库的位置是通过maven的核心配置文件(settings.xml)来配置的。settings.xml文件位于maven安装目录:apache-maven-3.3.9\conf\settings.xml 。

在这里插入图片描述

​ 打开settings.xml文件:

在这里插入图片描述

发现本地仓库默认的地址为当前用户的/.m2/repository目录。

一般情况下,我们需要自己重新设置本地仓库的地址,设置方法如下:

  1. 第一步:在maven的安装目录下创建一个repository文件夹(一般习惯将仓库地址和maven安装目录放置在一起)。

在这里插入图片描述

  1. 第二步:在核心配置文件setting.xml中,将仓库存放的位置设置成:D:\MySoft\maven\apache-maven-3.3.9\repository(以自己的安装路径为准);

在这里插入图片描述

2.4.2、远程仓库

​ 远程仓库又包括两类:

​ a:中央仓库

​ b:私服

2.4.2.1、中央仓库

中央仓库默认是apache提供的,位于国外。(中央仓库的地址:http://mvnrepository.com/)

在这里插入图片描述

2.4.2.2、配置maven私服
2.4.2.2.1 什么是私服

​ 私服是可以架设在局域网的一种特殊的远程仓库,目的是代理中央仓库来部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库(中央仓库),将构件下载到私服,再提供给本地仓库下载。

我们现在使用的私服有两个:1)阿里云私服(连接外网) 2)传智私服(在教室里局域网)

我们到公司,公司都会有自己的私服。其实私服就是一个服务器。我们的maven项目到私服服务器上去下载jar包到本地仓库供maven项目使用。

在这里插入图片描述

2.4.2.2.2 配置私服

​ 打开settins.xml文件,找到标签节点,在这个标签中添加以下配置信息中的任意一个:

【传智局域网私服】–在教室使用

 <mirror>
      <id>my</id>
      <mirrorOf>*</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://192.168.50.187:8081/repository/maven-public/</url>
 </mirror>

【阿里云私服】–连外网时使用

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

在这里插入图片描述

注: 千万注意, 只可配置一个(另一个要注释!) 不然两个可能发生冲突 ,导致jar包下不下来 !!!

三、maven工程

在创建maven工程之前一定要保证上述的仓库都是配置成功了,否则无法创建maven项目,因为创建maven项目都要到仓库中去下载插件。那么上面我们已经配置好maven仓库了,接下来我们就要创建maven工程了。

1、IDEA配置本地maven

​ 因为idea和maven是没有直接关系的。所以使用idea创建maven工程之前需要将本地的maven配置到idea环境中,这样才可以在idea中创建maven工程。配置方法如下:

1.1 配置本地maven
  1. 第一步:关闭当前工程,回到idea主界面找到customize-----All settings:

在这里插入图片描述

​ 2.第二步:配置maven_home和settings.xml的路径:

在搜索框里搜索maven,然后按照下面操作即可。

在这里插入图片描述

1.2 配置maven参数

​ 使用idea创建maven项目后,默认会去网络中的中央仓库中下载一些配置资源,那么会很慢,这里需要设置下,那么就不会到中央仓库去下载了一些资源,而是到本地仓库下载。需要设置参数archetypeCatalog。设置方法如下:将-DarchetypeCatalog=internal 设置到Maven–Runner–VM Options中。

在这里插入图片描述

参数:-DarchetypeCatalog=internal

说明:

​ 1)-D:在maven中表示设置参数的意思

​ 2)archetypeCatalog:表示设置参数的名字

​ 3)internal:表示设置参数的值

2、创建maven的java工程

​ 使用maven创建的项目可分为3种类型:

1)普通maven项目,就是之前的javase项目–》java project,项目打成jar包运行

2)maven的web项目,项目打成war包运行

3)maven的pom项目,也称为maven的聚合项目(我们这里不讲解,后续maven高级课程讲解)

​ 本课程只涉及到普通的java项目和web项目的创建。

在这里插入图片描述

2.1 创建步骤
  1. 第一步:File–New–Project

在这里插入图片描述

  1. 第二步:选择maven然后下一步:

在这里插入图片描述

  1. 第三步:填写项目的坐标信息:

在这里插入图片描述

附:

GroupID是项目组织唯一的标识符, 比如我的项目组叫heima30  那么GroupID应该是 com.itheima.sh.heima30   域名.项目组名

ArtifactID就是项目的唯一的标识符,表示项目名。 一般是 xxx-xxx   比如maven-java 
version:项目版本号 第一次就是1.0.0  第二次比较多的修改 2.0.0  第三次小的修改 2.1.0 第四次修改很小的bug2.1.1 ....
  1. 第四步:指定项目名称和路径:idea会把项目名中的- 去掉,我们给添加上即可。

在这里插入图片描述

在这里插入图片描述

2.2 java工程目录简介

在这里插入图片描述

说明:

​ 1).idea和maven-java1.iml只要在idea中创建工程都会存在的,idea生成的,不用关心

​ 2)pom.xml是maven的核心配置文件,我们会在这个配置文件配置依赖。下面会讲解

​ 3)main:主代码,在实际开发中是项目上线运行的

​ a:java:存放java代码的

​ b:resources:存放配置文件的,相当于以前创建的java工程中的src。例如存放mybatis、数据库连接池的配置文件。这个目录只能存放配置文件。

​ 4)test:存放测试的代码,项目上线之前先进行测试,然后在上线。

​ a:java:存放编写java的测试的代码,例如junit测试

2.3 运行java代码

1.在main目录的java目录上右键创建包

在这里插入图片描述

2.在创建好的包上右键创建java类
在这里插入图片描述

3.编写以下代码进行测试:

package com.itheima.sh.maven_helloworld_01;
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello maven..");
    }
}

运行程序:点击main方法左侧的绿色小三角,点击图标1 或者图标2 运行程序:

在这里插入图片描述

运行结果:如果控制台上能够正常打印如下信息,则说明工程创建没问题:

在这里插入图片描述

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

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

相关文章

【独家揭秘】SmartEDA电路仿真软件:电子电路基础学习的神器!

在电子科技日新月异的今天&#xff0c;电路基础学习的重要性愈发凸显。但你是否曾为复杂的电路图、难以理解的电路原理而感到困扰&#xff1f;今天&#xff0c;我要向大家推荐一款学习神器——SmartEDA电路仿真软件&#xff0c;让你轻松踏入电子电路基础学习的殿堂&#xff01;…

pytorch为自己的extension backend添加profiler功能

pytorch为自己的extension backend添加profiler功能 1.参考文档2.your-extension-for-pytorch需要增加的代码3.pytorch demo及如何调整chrome trace json文件4.[可视化](https://ui.perfetto.dev/) 本文演示了pytorch如何为自己的extension backend添加profiler功能 背景介绍 …

HarmonyOS Next开发学习手册——代码混淆

代码混淆简介 针对工程源码的混淆可以降低工程被破解攻击的风险&#xff0c;缩短代码的类与成员的名称&#xff0c;减小应用的大小。 DevEco Studio提供代码混淆的能力并默认开启&#xff0c;API 10及以上版本的Stage模型、 编译模式为release 时自动进行代码混淆。 使用约束…

React_创建一个项目

目录 一、React&#xff08;js 版&#xff09; 二、React&#xff08;ts 版&#xff09; 使用react创建一个项目,前提是确保你已经安装了Node.js和npm。 如果没有安装Node.js和npm&#xff0c;查看这个文件&#xff1a; 安装node.js和npmhttps://blog.csdn.net/zxy1993106…

Arcgis地统计分析工具灰色不可用 解决方法

使用Arcmap&#xff0c;调用地统计分析工具&#xff08;Geostatistical Analyst&#xff09;下的探索数据&#xff08;Explore Data&#xff09;&#xff0c;发现工具呈灰色不可用。这是由于扩展模块中没有将该模块做勾选设置导致的。下面介绍一下如何解决地统计分析工具不可用…

学生成绩管理系统带8000字文档学生选课管理系统java项目javaweb项目ssm项目jsp项目java课程设计java毕业设计

文章目录 学生选课成绩管理系统一、项目演示二、项目介绍三、8500字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带8500字文档&#xff08;9.9&#xffe5;带走&#xff09; 学生选课成绩管理系统 一、项目演示 选课成绩管理系统 二、项目介绍 语言: Java …

【从0实现React18】 (五) 初探react mount流程 完成核心递归流程

更新流程的目的&#xff1a; 生成wip fiberNode树标记副作用flags 更新流程的步骤&#xff1a; 递&#xff1a;beginWork归&#xff1a;completeWork 在 上一节 &#xff0c;我们探讨了 React 应用在首次渲染或后续更新时的整体更新流程。在 Reconciler 工作流程中&#xff…

硬盘空间告急?监控服务器容量,钉钉及时提醒!

在日常的服务器维护中&#xff0c;硬盘容量的监控是非常重要的。如果硬盘容量超过某个阈值&#xff0c;可能会导致服务器无法正常运行&#xff0c;影响业务的正常运作。为了避免这种情况&#xff0c;我们可以编写一个Shell脚本&#xff0c;定期检查硬盘容量&#xff0c;当超过设…

springboot + Vue前后端项目(第二十记)

项目实战第二十记 写在前面1. 高德地图官网2. 开发文档3. 集成高德地图3.1 在public文件夹下创建config.js3.2 index.html&#xff08;在项目启动文件中引入外部的js&#xff09;3.3 点标记&#xff08;用点标记当前位置&#xff09;3.4 信息窗体&#xff08;点击当前位置&…

如何预防和处理他人盗用IP地址?

IP地址的定义及作用 解释 IP 地址在互联网中的作用。它是唯一标识网络设备的数字地址&#xff0c;类似于物理世界中的邮政地址。 1、IP地址盗窃的定义 解释一下什么是IP地址盗用&#xff0c;即非法使用他人的IP地址或者伪造IP地址的行为&#xff0c;这种行为可能引发法律和安…

DLMS/COSEM协议—(Green-Book)Gateway protocol

DLMS/COSEM协议 — Gateway protocol 10.10 Gateway protocol &#xff08;网关协议&#xff09;10.10.1 概述10.10.2 网关协议 &#xff08;The gateway protocol&#xff09;10.10.3 HES在WAN/NN中作为发起者&#xff08;拉取操作&#xff09;10.10.4 LAN中的终端设备作为发起…

数据库物理结构设计-定义数据库模式结构(概念模式、用户外模式、内模式)、定义数据库、物理结构设计策略

一、引言 如何基于具体的DBMS产品&#xff0c;为数据库逻辑结构设计的结果&#xff0c;即关系数据库模式&#xff0c;制定适合应用要求的物理结构 1、在设计数据库物理结构前&#xff0c;数据库设计人员首先 要充分了解所用的DBMS产品的功能、性能和特点&#xff0c;包括提供…

【最新综述】基于伪标签的半监督语义分割

Semi-Supervised Semantic Segmentation Based on Pseudo-Labels: A Survey 摘要&#xff1a; 语义分割是计算机视觉领域的一个重要而热门的研究领域&#xff0c;其重点是根据图像中像素的语义对其进行分类。然而&#xff0c;有监督的深度学习需要大量数据来训练模型&#xff…

Asm动态生成类和get and set方法

asm在解析文件的时候是按照特定顺序进行分析的&#xff0c;首先是visit方法&#xff0c;做类相关的解析&#xff0c;然后是注解&#xff0c;然后是属性&#xff0c;最后才是方法&#xff0c;属性是在所有方法分析前面进行&#xff0c;也就是只有当class文件中的所有属性都遍历完…

【Android11】开机启动日志捕捉服务

一、前言 制作这个功能的原因是客户想要自动的记录日志中的报错和警告到设备的内存卡里面。虽然开发者模式中有一个“bug report” 会在/data/user_de/0/com.android.shell/files/bugreports/目录下生成一个zip包记录了日志。但是客户觉得这个日志很难获取到他们需要的信息&am…

无需劳师动众,让石油化工DCS集散控制系统轻松实现无线传输!

石油化工中,为了保证较高的可靠性和安全性,大量使用的是DCS集散控制系统。与FCS现场总线的“现场采集,转换为数字信号来集中传输”不同,DCS系统为了避免由于线缆断裂或者节点问题导致整个控制系统失灵,采用“分散传输,集中采集”的方式,即每个传感器通过4-20mA的模拟量通…

el-upload 上传图片及回显照片和预览图片,文件流和http线上链接格式操作

<div v-for"(info, index) in zsjzqwhxqList.helicopterTourInfoList" :key"info.id" >编辑上传图片// oss返回线上地址http链接格式&#xff1a;<el-form-itemlabel"巡视结果照片":label-width"formLabelWidth"><el…

【MySQL】 -- 用户管理

1. 权限 如果我们只能使用root用户&#xff0c;这样存在安全隐患。这时&#xff0c;就需要使用MySQL的用户管理。创建出非root用户&#xff0c;限制其权限。 权限这个概念拿出来就是用来限制非root用户的。这样从技术手段上保证了数据的安全性和完整性&#xff0c;防止有人删库…

LeetCode11. 盛最多水的容器题解

LeetCode11. 盛最多水的容器题解 题目链接&#xff1a; https://leetcode.cn/problems/container-with-most-water 示例 思路 暴力解法 定住一个柱子不动&#xff0c;然后用其他柱子与其围住面积&#xff0c;取最大值。 代码如下&#xff1a; public int maxArea1(int[]…

麒麟系统安装Redis

一、背景 如前文&#xff08;《麒麟系统安装MySQL》&#xff09;所述。 二、下载Redis源码 官方未提供麒麟系统的Redis软件&#xff0c;须下载源码编译。 下载地址&#xff1a;https://redis.io/downloads 6.2.14版本源码下载地址&#xff1a;https://download.redis.io/re…