Maven ( 一 ) 导入依赖

news2025/1/23 6:20:12

1.基本概念

1.1.什么是Maven

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

Maven提供了开发人员构建一个项目完整的生命周期框架。

开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。

在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。

1.2.Maven的主要功能

依赖的管理:仅仅通过jar包的几个属性,就能确定唯一的jar包,在指定的文件pom.xml中,只要写入这些依赖属性,就会自动下载并管理jar包。

项目的构建:内置很多的插件与生命周期,支持多种任务,比如校验、编译、测试、打包、部署、发布…

项目的知识管理:管理项目相关的其他内容,比如开发者信息,版本等等

2.安装

2.1.maven的资源

官网:http://maven.apache.org/

教程:https://www.yiibai.com/maven/

2.2.安装步骤

2.2.1.下载解压

到官网下载指定的版本后,

将zip压缩文件解压到某个方便找到的位置

注意路径不要有中文

在这里插入图片描述

2.2.2.JDK环境变量

使用 Maven 需要 JDK的支持, 所以安装maven之前, 必须先确保你的机器中已经安装了JDK, 并配置了环境变量

如果是Maven3则必须JDK1.7以上

右击 此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量

在这里插入图片描述

系统变量 查找, 如果有 JAVA_HOME 或者 在Path 中是否配置 JDK的路径, 如果没有可以添加一个

变量值 要指向 JDK的安装路径

在这里插入图片描述

并且要将 JAVA_HOME 配置到Path变量中 %JAVA_HOME%\bin

2.2.3.Maven变量

再添加环境变量M2_HOME,值为Maven的安装路径( 解压路径 )

在这里插入图片描述

2.2.4.配置Path

在Path环境变量的变量值中 添加 %M2_HOME%\bin ,

注意不要超过 JAVA_HOME的位置 , 排序也不要太低

在这里插入图片描述

2.2.4.在cmd测试

打开指令界面( 在开始菜单中通过 运行 cmd )

输入

mvn -v 

如果出现maven的版本信息,说明配置成功。

在这里插入图片描述

3.Maven的仓库

3.1.仓库分类

在这里插入图片描述

3.1.1.本地仓库

Maven主要功能之一, 就是帮助应用项目导入依赖jar.

原来要将jar文件导入到应用项目中, 是一个非常麻烦的过程

现在jar文件存放在本地仓库中, 如 : D://repository

应用项目只是通过pom.xml 文件说明依赖关系就可以, 实现了应用项目与jar文件的解耦

 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

3.1.2.远程仓库

本地仓库的jar文件是从远程仓库下载的, 远程仓库又有三种:

中央仓库 : 是Maven提供的真正存放jar文件的服务器, 可以通过网络访问并下载, 如:

​ http://www.sonatype.org/nexus/
​ http://mvnrepository.com/
​ http://repo1.maven.org/maven2

**镜像仓库 : ** 一般是有好心的网站提供的,是对中央仓库进行复制, 通常使用这类仓库速度更快, 如:

​ 阿里的 https://maven.aliyun.com/repository/public

**私服 : ** 是个别公司针对自己公司搭建内部使用的Maven服务器, 除了官方提供的jar文件, 还有公司内部的一些自己封装的jar文件

3.2.配置仓库地址

在 Maven 工具的 /conf文件夹下 Settings.xml 文件中 可以配置 仓库信息

3.2.1.本地仓库

配置本地仓库, 默认在用户的文件夹下, 可以修改成其它目录, 如: d:/repository

  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
	<localRepository>d:/repository</localRepository>

3.2.2.远程仓库

可以将默认修改成阿里云提供的镜像仓库

  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   |
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred
   | server for that repository.
   |-->
  <mirrors>

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

4.资源描述

在 Maven 中 使用三级信息来区别每一个jar文件, 分别是:

groupId : 组织名, 可以是多个单词使用 .连接, 定义当前Maven项目隶属的实际项目。

artifactId : 项目名, 通常只有一个单词, 要想多个单词使用 - 连接, 定义实际项目中的一个Maven项目(模块),

​ 推荐的做法是使用实际项目名称作为artifactId的前缀。

version : 版本号, 无格式要求, 代表不同的版本

如 :

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

其它属性 :

packaging : 该元素定义Maven项目的打包方式。常用为 jar, war , pom几种

classifier : 该元素用来帮助定义构建输出的一些附属构建。

scope : 作用域, Maven默认的依赖配置项中,scope的默认值是compile,

选项说明
compile是默认值, 表示被依赖项目需要参与当前项目的编译
runtime表示该依赖不会参与到项目的编译,但是会参与测试,运行周期。与compile相比,就是跳过了编译而已。
test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。
provided意味着打包的时候可以不用包进去,需要别的设施去提供,例如项目的使用方提供SDK包下引用的日志依赖、web 容器提供servlet相关依赖。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。
systemsystem 元素与 provided 元素类似,但是被依赖项不会从 maven 仓库中查找,而是从本地系统中获取,systemPath 元素用于制定本地系统中 jar 文件的路径。这个一定要配合systemPath标签使用,指定自定义jar包的路径
importimport比较特殊,它只使用在dependencyManagement标签中,表示从其它的pom中导入dependency的配置,打包类型package为pom,例如 (B项目导入A项目中的包配置)。

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

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

相关文章

win11家庭版开机密码忘记了怎么办?

今天遇到一个用户win11家庭版本开机密码忘记了&#xff0c;所以要想办法进行跳过。 开始通过winpe进行管理员密码修改&#xff0c;但登录后出现管理员密码已经封掉不能登录&#xff0c;后来才知道win11家庭版已经去掉管理员账号。 而且登录的时候要输入pin&#xff0c;这个应…

数据标注,优化模型辅助标注、Label 库管理|ModelWhale 版本更新

春夏之交&#xff0c;草木际天。ModelWhale 新一轮的版本更新&#xff0c;期待为你带来更好的使用体验。 本次更新中&#xff0c;ModelWhale 主要进行了以下功能迭代&#xff1a; • 优化 模型辅助数据标注&#xff08;专业版✓ 团队版✓ &#xff09; • 新增 数据标注 Labe…

【LeetCode刷题记录】数组专题

说明&#xff1a; 文章内容为个人的力扣刷题记录&#xff0c;不定时更新。文章内容如有错误&#xff0c;欢迎指正。 文章目录 2023-04-24 题目1. 两数之和方法一&#xff1a;暴力解法&#xff0c;循环遍历方法二&#xff1a;哈希表 2023-04-25 4. 寻找两个正序数组的中位数方法…

在线CRM客户管理系统有好用的吗?这5款千万别错过!

阅读本文你将了解&#xff1a;1、CRM管理系统是什么&#xff1b;2.CRM管理系统在线用有哪些&#xff1b;3.CRM管理系统实际应用场景。 一、CRM管理系统是什么 CRM是客户关系管理的缩写&#xff0c;是指企业通过建立客户档案、跟进客户需求、提供优质服务来维系客户关系的一种管…

蓝牙聊天App设计1:Android Studio制作蓝牙聊天通讯软件(UI界面设计)

前言&#xff1a;蓝牙聊天App设计全部有三篇文章&#xff08;一、UI界面设计&#xff0c;二、蓝牙搜索配对连接实现&#xff0c;三、蓝牙连接聊天&#xff09;&#xff0c;这篇文章是一、UI界面设计 课程1&#xff1a;Android Studio小白安装教程&#xff0c;以及第一个Androi…

5.2 构造数值积分公式的基本方法与有关概念的例题分析

书上例题&#xff1a; 例3 确定求积公式 中的系数&#xff0c;使其具有尽可能高的代数精度。 我的答案&#xff1a; 一、信息 1.给了我一个求积公式 2.确定求积公式中的系数 3.使得这个求积系数具有尽可能高的代数精度。 二、分析 条件1&#xff1a;告诉我这个求积公…

Linux搭建我的世界服务器和如何使用公网远程进行联机教程

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 转载自内…

shell脚本----条件判断语句

文章目录 一、条件测试1.1 文件测试和整数测试文件测试整数值比较 1.2字符串测试和逻辑测试字符串测试&#xff1a;逻辑测试 二、if语句三、case语句 一、条件测试 1.1 文件测试和整数测试 文件测试 test命令 测试表达是是否成立&#xff0c;若成立则返回0&#xff0c;否则返…

手把手教你JAVA如何连接MYSQL-mysql-connector-j-8.0.32.jar

第一步&#xff1a;下载mysql驱动包 1、mysql官网&#xff1a;https://dev.mysql.com/downloads/connector/j/ 下载Connector/J &#xff08;JAVA使用&#xff09;如下图所示&#xff1a; 2、此时会进入下载页面&#xff0c;无需登录&#xff0c;直接下载即可&#xff0c;如下…

让Python自动测试更得心应手——认识一下神奇的pytest测试框架

目录&#xff1a;导读 前言 安装pytest pytest测试用例设计原则 pytest执行用例规则 1、执行某个目录下所有的用例 2、单独执行某个py文件 3、执行某个py文件里的某个函数 4、-s 参数 Pycharm运行Pytest 结语 前言 Python在测试圈的应用非常广泛&#xff0c;特别是…

人工智能中(Pytorch)框架下模型训练效果的提升方法

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能中(Pytorch)框架下模型训练效果的提升方法。随着深度学习技术的快速发展&#xff0c;越来越多的应用场景需要建立复杂的、高精度的深度学习模型。为了实现这些目标&#xff0c;必须采用一系列复杂的技术来提…

Zynq-7000、FMQL45T900的GPIO控制(四)---linux应用层配置GPIO输入控制

上文中详细阐述了对应原理图MIO/EMIO的编号&#xff0c;怎么计算获取linux下gpio的编号 本文涉及C代码上传&#xff0c;下载地址 Zynq-7000、FMQL45T900的GPIO控制c语言代码资源-CSDN文库 本文详细记录一下针对获取到gpio的编号&#xff0c;进行配置输入模式&#xff0c;并进…

Jenkins + Gitlab 实现项目自动化构建及部署

通俗来讲就是本地项目 push 到 gitlab 后, Jenkins 能够识别到项目的更新并自动构建部署;  本文以实际操作的方式来表述详细配置过程及避开配置 Jenkins 时的坑. 默认电脑已经安装了虚拟机, 默认gitlab 上已经有了你想要部署的项目, 部署了 maven 和 jdk 并配置了环境变量!!! …

H5拉新充场app系统源码

拉新充场是一种基于移动互联网技术的营销手段&#xff0c;通常由企业或商家使用推广软件来实现。拉新是指通过各种方式引导潜在用户注册成为企业的会员或客户&#xff0c;充场则是指通过向已有用户提供优惠券、折扣等福利来鼓励其进行消费或充值。 这种营销手段可以帮助企业…

告别脚本小子系列丨JAVA安全(7)——反序列化利用链(中)

0x01 前言 距离上一次更新JAVA安全的系列文章已经过去一段时间了&#xff0c;在上一篇文章中介绍了反序列化利用链基本知识&#xff0c;并阐述了Transform链的基本知识。Transform链并不是一条完整的利用链&#xff0c;只是CommonsCollections利用链中的一部分。当然并不是所有…

对制造企业来说,该怎么样去选择合适的CRM系统?

随着互联网和数字化技术的发展&#xff0c;CRM(Customer Relationship Management&#xff0c;客户关系管理)系统正越来越被企业所重视。随之而来的是市场上各种不同类型、功能和价格的CRM系统。对制造企业而言&#xff0c;选择合适的CRM系统可以使企业更好地管理客户关系&…

01 【Sass的安装使用】

1.介绍 1.1 CSS预处理技术&#xff0c;及种类介绍 什么是css预处理技术 CSS 预处理器定义了一种新的语言&#xff0c;其基本思想是&#xff0c;用一种专门的编程语言&#xff0c;为 CSS 增加了一些编程的特性&#xff0c;将 CSS 作为目标生成文件&#xff0c;然后开发者就只…

【Makefile】笔记

正点原子Linux驱动13.4.1节&#xff0c;通用Makefile疑难点解释 聊聊 SOBJS : $(patsubst %, obj/%, $(SFILENDIR:.S.o)) 的作用 聊聊变量替换语法 在 Makefile 中&#xff0c;变量替换语法可以用来对变量的值进行修改和转换。有以下几种不同的变量替换语法&#xff1a; $(va…

二分类结局变量Logistic回归临床模型预测(一)——介绍

本节讲的是二分类结局变量的临床模型预测&#xff0c;与之前讲的Cox回归不同&#xff0c;https://lijingxian19961016.blog.csdn.net/article/details/124088364https://lijingxian19961016.blog.csdn.net/article/details/124088364https://lijingxian19961016.blog.csdn.net/…

C++类与对象this指针

文章目录 前言一&#xff0c;类1.类的引入2.类的定义3.类的作用域4.类的访问限定符及封装封装访问限定符面试题 二&#xff0c;this指针1.this指针定义2.this指针的特性 前言 从此篇往后&#xff0c;开始了C的类和对象的篇章&#xff0c;嗯就说这么多 一&#xff0c;类 1.类的…