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

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 运行程序:

在这里插入图片描述

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

在这里插入图片描述

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

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

相关文章

VR加密方案常见问题有哪些?

在数字化时代&#xff0c;随着虚拟现实&#xff08;VR&#xff09;技术的迅速发展与普及&#xff0c;VR视频内容的安全传输成为关注焦点。为保护版权及敏感信息免遭非法复制或篡改&#xff0c;VR视频加密技术显得尤为重要。 首先&#xff0c;高效的加密算法对确保数据安全性至关…

java注解的概念及其使用方法详细介绍

1_注解&#xff1a;概述 路径 什么是注解注解的作用 注解 什么是注解&#xff1f; 注解(Annotation)也称为元数据&#xff0c;是一种代码级别的说明注解是JDK1.5版本引入的一个特性&#xff0c;和类、接口是在同一个层次注解可以声明在包、类、字段、方法、局部变量、方法参…

龙国南方航空滑块acw_v2+cookie+风控处理+type后缀

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未经许可禁…

【Day03】0基础微信小程序入门-学习笔记

文章目录 视图与逻辑学习目标页面导航1. 声明式导航2. 编程式导航3. 导航传参 页面事件1. 下拉刷新2. 上拉触底3.扩展-自定义编译模式 生命周期1. 简介2. 生命周期函数3. 应用的生命周期函数4. 页面生命周期函数 WXS脚本1. 概述2. 基础语法3. WXS的特点4. 使用WXS处理手机号 总…

计算机网络:如何隐藏真实的IP和MAC地址?

目录 一、什么是MAC地址二、什么是IP地址三、如何隐藏真实的MAC地址四、如何隐藏真实的IP地址 一、什么是MAC地址 MAC地址&#xff0c;全称为媒体访问控制地址&#xff08;Media Access Control Address&#xff09;&#xff0c;是一种用于网络通信的唯一标识符。它是由IEEE 8…

深入解析Java和Go语言中String与byte数组的转换原理

1.Java String与byte[]互相转换存在的问题 java中&#xff0c;按照byte[] 》string 》byte[]的流程转换后&#xff0c;byte数据与最初的byte不一致。 多说无益&#xff0c;上代码&#xff0c;本地macos机器执行&#xff0c;统一使用的UTF-8编码。 import java.nio.charset.S…

【最佳实践】前端如何搭建自己的cli命令行工具,让自己编码的时候如虎添翼

作为前端开发人员&#xff0c;搭建自己的前端CLI工具是一个有趣且有意义的事情。以下是一篇详细的教程&#xff0c;包括使用场景和案例。 使用场景 假设你是一个前端团队的一员&#xff0c;需要频繁地在不同的项目中执行一些标准化的任务&#xff0c;比如&#xff1a; 根据模…

一次tcpdump抓包过程

#查询网卡 tcpdump -D # 监听 21100 端口 网卡ens192 &#xff08;不知道网卡&#xff0c;可以直接不输入 -i 网卡&#xff09;TCP数据&#xff0c;等待一段时间&#xff0c;执行CtrlC&#xff0c;终止程序 tcpdump -x -s 0 -w /tmp/123.dump -i ens192 -p tcp port 21100 #…

充电桩小程序:引领未来,携手共创绿色充电新纪元

着新能源汽车市场的迅猛增长&#xff0c;充电桩行业正迎来前所未有的发展机遇。然而&#xff0c;在这个充满竞争和机遇并存的时代&#xff0c;如何快速、高效地满足用户需求&#xff0c;成为充电桩行业老板们关注的焦点。为此&#xff0c;我们推出了全新的充电桩小程序&#xf…

【智能算法应用】麻雀搜索算法在物流配送中心选址的应用(无待选配送中心)

目录 1.算法原理2.数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】麻雀搜索算法&#xff08;SSA&#xff09;原理及实现 2.数学模型 模型假设 待定物流配送中心的库存总能满足需求点的需求不考虑从工厂到待定物流配送中心的运输成本不考虑选定区域内待确定…

python爬虫--scrapy框架

Scrapy 一 介绍 Scrapy简介 1.Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架&#xff0c;用途非常广泛2.框架的力量&#xff0c;用户只需要定制开发几个模块就可以轻松的实现一个爬虫&#xff0c;用来抓取网页内容以及各种图片&#xff0c;非…

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

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

CentOS安装ntp时间同步服务

CentOS安装ntp时间同步服务 安装ntp 检查服务器是否安装ntp&#xff1a; rpm -q ntp安装ntp&#xff1a; yum install -y ntp服务端配置 配置文件路径&#xff1a;/etc/ntp.conf 设置ntp为开机启动 systemctl enable ntpd查看ntp开机启动状态 enabled:开启, disabled:关闭 …

第4章,在 PyCharm 中创建、打开、关闭项目的操作

在 PyCharm 中创建、打开、关闭项目的操作 在PyCharm中创建、打开和关闭项目的操作步骤。以下是每个操作的步骤说明&#xff0c;以及在PyCharm界面中可能对应的区域&#xff1a; 1、创建新项目 1&#xff09;启动PyCharm&#xff1a; 打开PyCharm IDE。 2&#xff09;创建新…

数据结构 —— 哈夫曼树

数据结构 —— 哈夫曼树 哈夫曼树定义构造算法特性应用 哈夫曼编码核心概念工作原理特点 我们今天来看哈夫曼树&#xff1a; 哈夫曼树 哈夫曼树&#xff08;Huffman Tree&#xff09;&#xff0c;是一种特殊的二叉树&#xff0c;由D.A. Huffman在1952年提出&#xff0c;主要用…

php聚合快递寄快递小程序

一、引言&#xff1a;告别传统寄件&#xff0c;拥抱便捷新选择 在数字化时代&#xff0c;我们越来越追求便捷和高效。传统的寄件方式已经无法满足现代人快速、便捷的需求。因此&#xff0c;一款聚合快递优惠寄件小程序应运而生&#xff0c;它集合了多家快递公司&#xff0c;为…

推荐两款电脑文件处理工具,强大到你不舍得卸载

EasyFileCount EasyFileCount是一款基于Java开发的多功能文件管理工具&#xff0c;旨在帮助用户更轻松地管理和优化他们的文件存储。以下是EasyFileCount的主要功能和特点&#xff1a; 查看文件夹大小&#xff1a;用户可以快速统计和查看文件夹的总大小&#xff0c;实时显示各…

计算机组成原理——系统总线

题目:计算机使用总线结构便于增减外设,同时__C____。 A.减少了信息传送量 B.提高了信息传输速度 C.减少了信息传输线的条数 1. 总线的分类 1.1. 片内总线 芯片内部的总线 在CPU芯片内部,寄存器与寄存器之间、寄存器与逻辑单元ALU之间 1.1.1. 数据总线 双向传输总线 数…

ISO37001认证:防范贿赂风险的强大工具

随着全球反贿赂法规的日益严格&#xff0c;各类组织面临的贿赂风险和合规压力不断增加。ISO37001反贿赂管理体系认证应运而生&#xff0c;为组织提供了一个系统化的管理框架&#xff0c;帮助其有效发现、预防和管控贿赂风险。本文将详细探讨ISO37001认证的作用和意义&#xff0…

刷代码随想录有感(119):动态规划——打家劫舍III(树形dp)

题干&#xff1a; 代码&#xff1a; class Solution { public:vector<int>dp(TreeNode* cur){if(cur NULL)return vector<int>{0, 0};vector<int> left dp(cur -> left);vector<int> right dp(cur -> right);//偷int val1 cur -> val l…