首页 > 其他分享 >Maven相关介绍

Maven相关介绍

时间:2024-04-29 23:35:38浏览次数:22  
标签:依赖 项目 仓库 介绍 Maven -- 坐标 相关

Maven的作用

1、依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题。

2、统一项目结构

# 这是maven的项目结构

- src                   
	- main                 # 实际项目资源
		- java         # java源代码目录
		- resources    # 配置文件目录
	- test                 # 测试项目资源
		- java
		- resources
	- pom.xml              # 项目配置文件

3、标准跨平台(Linux、Windows、MacOS)的自动化项目构建方式

Maven概述

  • Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。
  • 作用
    • 方便的依赖管理
    • 统一的项目结构
    • 标准的项目构建流程
  • Maven官网:https://maven.apache.org/

Maven介绍

Maven模型

image.png

  • 仓库:用于存储资源,管理各种jar包。
    • 本地仓库:自己计算机上的一个目录
    • 中央仓库:有Maven团队维护的全球唯一的仓库。
    • 远程仓库(私服):一般由公司团队搭建的私有仓库。

查找jar包顺序:本地仓库-->远程仓库(私服)-->中央仓库

Maven安装

  • 安装步骤
    1. Maven官网下载:选择第二个下载即可
      image.png
    2. 配置本地仓库:
      修改conf/settings. xml中 <localRepository> 为一个指定目录,作为我们的本地仓库地址。
    3. 配置阿里云私服:
      修改conf/settings. xml中 <mirrors> 标签,添加一个子标签
      <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>            
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
      
    4. 配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量
  • 测试是否配置完成
    • 打开cmd
    • 输入 mvn -v 指令,看看是否会出现Maven的版本信息

Maven的目录结构

# Maven的目录结构

- bin       # 存放的是可执行文件
- boot      # 
- conf      # Maven的配置文件
- lib       # Maven所需要的依赖

IDEA集成Maven

配置Maven环境

  • 选择IDEA中的File-->Settings-->Build, Execution, Deployment-->Build Tools-->Maven
  • 设置IDEA使用本地安装的MaVen,并修改配置文件及本地仓库路径
    image.png
  • 检查Maven关联的JRE版本是否是我们所使用的
    image.png
  • 配置Java语言的字节码版本
    image.png

之前的配置只是配置单独的一个项目,如果想让IDEA中的所有项目都使用这样的配置。

则可以在IDEA开始的界面进行上面的配置操作。
image.png

如果打开了一个项目,则可以在File-->New Projects Setup-->Settings for New Projects进行全局的配置。

IDEA导入Maven项目

  • 点击右侧的Maven管理界面,单击加号导入,选择导入项目的pom. xml文件即可image.png

Maven坐标

  • 什么是坐标?
    • Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。
    • 使用坐标来定义项目或引入项目中需要的依赖。
  • Maven坐标主要组成
    • groupld:定义当前Maven项目隶属组织名称(通常是域名反写)
    • artifactld:定义当前Maven项目名称(通常是模块名称)
    • version:定义当前项目版本号

例如:

<dependencies>
	<dependency>
		<groupld>com.tersesystems.logback</groupld>
		<artifactld>logback-honeycomb-playws_2.12</artifactld>
		<version>1.0.3</version>
	</dependency>
</dependencies>

Maven依赖

依赖管理

  • 依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
  • 配置:
    1. pom. xml中编写 <dependencies> 标签
    2. <dependencies> 标签中使用 <dependency> 引入坐标
    3. 定义坐标的groupld,artifactld,version
    4. 击刷新按钮,引入最新加入的坐标依赖

如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中去搜索。

依赖传递

  • 依赖具有传递性
    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
    • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

image.png

  • 排除依赖
    • 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本
<dependency>
	<!--引入的依赖-->
	<groupld>com.tersesystems.logback</groupld>
	 <artifactld>logback-honeycomb-playws_2.12</artifactld>
	 <version>1.0.3</version>
	 
	<exclusions>
	<!--排除的依赖-->
	<!--随别写的,大家知道怎么用就好-->
		<exclusion>
		<groupld>junit</groupld>
		<artifactld>junit</artifactld>
		</exclusion>
	</exclusions>
</dependency>

依赖范围

  • 依赖的jar包,默认情况下,可以在任何地方使用。可以通过 <scope>..</scope> 设置其作用范围作用范围
    • 主程序范围有效(main文件夹范围内)
    • 测试程序范围有效(test文件夹范围内)
    • 是否参与打包运行(package指令范围内)
<dependency>
	<!--引入的依赖-->
	<groupld>com.tersesystems.logback</groupld>
	 <artifactld>logback-honeycomb-playws_2.12</artifactld>
	 <version>1.0.3</version>
	 <scoper>test</scope>     # 控制依赖范围
</dependency>

scope的取值:

image.png

Maven的生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一。

  • Maven中有3套相互独立的生命周期
    • clean:清理工作
    • default:核心工作,如:编译、测试、打包、安装、部署等
    • site:生成报告、发布站点等

image.png

  • clean:清除上一次构建生成的文件
  • compile:编译项目源代码
  • test:使用合适的单元测试框架运行测试
  • package:将编译后的文件打包,如:jar、war等
  • install:安装项目到本地仓库

注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。

分别是clean、default、site三套生命周期。

注:Maven的所有工作都是由对应的插件来完成工作的。

免责声明:此片文章是个人学习笔记,存在借鉴,若有冒犯或侵权,联系可删除。

标签:依赖,项目,仓库,介绍,Maven,--,坐标,相关
From: https://www.cnblogs.com/fyislo/p/18166827

相关文章

  • Day1-Java介绍及JDK的安装配置
    Day1-JavaSE基本Dose命令切换盘符:E:=cd/dE:(跨盘切换要+/d)查看目录下所有文件:dir切换目录:cd+路径返回上一级:cd..清屏:cls退出终端:exit查看电脑IP:ipconfig打开计算器:calc打开画图:mspaint打开记事本:notepad测试网络:ping+url创建文件夹:md+文件夹名创建文件:cd......
  • 从零手写实现 apache Tomcat-01-入门介绍
    创作缘由平时使用tomcat等web服务器不可谓不多,但是一直一知半解。于是想着自己实现一个简单版本,学习一下tomcat的精髓。怎么实现一个tomcat呢?Tomcat就像是一个用Java语言搭起来的大舞台,专门用来演出那些用Java编写的网页剧。想要玩得转Tomcat,你最好对Java语言有所了解......
  • 边缘计算原理与六大应用介绍
    边缘计算概述边缘计算使数据存储和处理靠近生成或收集数据的位置,而不是在位于数千公里的服务器上。它将通过保持灵活性在边缘无缝可靠地部署服务。它比云计算更安全,因为不需要传输数据。因此,在将数据从边缘移动到云端时,不用担心数据丢失。因此,它提供了更快的洞察力和商业利益,减少......
  • 启发式评估(heuristic evaluation)方法介绍--转[2011.12.23 sina blog]
    启发式评估(heuristicevaluation)方法介绍(2008-09-0911:56:52)转载▼标签:it分类: 2互联网产品设计什么是启发式评估?启发式评估法就是使用一套简单、通用、有启发性的可用性原则来进行的可用性评估。即几个评审人员根据一些通用的可用性原则和自己的经验来发现......
  • 04-vue项目相关
    #1工程化---》创建vue项目 -要按vue要求的套路写代码--》写的都是vue的东西-最终上线--》要编译---》把vue的代码--》编译成html,css,js-创建工程,编译需要使用:nodejs--》webpack#2安装node环境 -官网下载一路下一步安装-两个命令 npm---->pip......
  • Vim编辑器:简易命令介绍
    Vim编辑器:简易命令介绍1.概念VIM是vi的升级版本,除了兼容vi的所有指令,VIM还具有一些新的特性,主要体现在:1.多级撤销:我们知道在vi里,按u只能撤消上次命令,而在VIM里可以无限制的撤消。2.易用性:vi只能运行于unix中,而VIM不仅可以运行于unix,windows,mac等多操......
  • 什么是SQL 语句中相关子查询与非相关子查询
    1.什么是SQL子查询要理解相关子查询和非相关子查询,我们得首先理解什么是子查询,子查询是指在一个查询语句中嵌套的另一个查询语句。子查询可以嵌套在其他查询语句中,如SELECT、INSERT、UPDATE、DELETE等,它作为一个独立的查询单元,其结果可以被外部查询所使用。子查询可以帮助我......
  • postgresql权限相关
    给用户赋予表的权限--赋予SELECT权限GRANTSELECTONTABLEtable_nameTOusername;--赋予INSERT,UPDATE,DELETE权限GRANTINSERT,UPDATE,DELETEONTABLEtable_nameTOusername;--赋予所有权限GRANTALLPRIVILEGESONTABLEtable_nameTO......
  • HEX文件格式相关
    Hex文件是可以烧录到MCU中,被MCU执行的一种文件格式。如果用记事本打开可发现,整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码形式显示)。Hex文件可以按照如下的方式进行拆分来分析其中的内容:例如“:1000080080318B1E0828092820280B1D0C280D2854”可以被看作“0x10......
  • docker部署SonarQube流程及相关问题汇总
    环境说明:sonarqube版本:10.4.1-communityPostgreSql版本:14.1系统环境:centos7.6(x86_64)部署流程1、PostgreSql的安装部署在docker中拉取最新版本镜像,命令如下:dockerpullpostgres 镜像拉取成功后执行如下命令创建PostgreSql容器:dockerrun--namepostgres-ePOST......