Maven基础及idea环境下使用Maven(附带私服nexus搭建)

本文介绍了Maven的基本概念,包括项目管理工具、POM模型、依赖管理和仓库。详细讲解了Maven的安装配置,特别是如何在IDEA中使用Maven,包括创建工程和依赖管理。此外,还阐述了Maven的生命周期和插件,以及模块化开发的设计思想。最后,介绍了如何搭建和使用私有仓库Nexus,包括资源上传和IDEA的配置。
摘要由CSDN通过智能技术生成

Maven基础

学习笔记仅供参考

作者--Alianer


前言

  • 原理图以来源于黑马程序员的教程资料,大部分实操截图均为自己上传

  • 基本上是看黑马视频自己摘抄的笔记,会不定时回来过一遍知识,根据自己的理解不断改进笔记

Maven基本概念

Maven简介

  • maven本质是一个项目管理工具,将开发和管理的过程抽象成为一个对象模型(POM)
  • POM(Project Object Model)

Maven的作用

  • 项目构建:提供标志的跨平台的自动化项目构建方式
  • 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
  • 统一的开发结构:提供标准的、统一的项目结构

Maven安装与配置

官方安装

image-20210706215906084

配置环境变量

  • 在系统变量里面添加一个名字为 MAVEN_HOME 变量为maven安装路径
  • 在系统变量Path中添加%MAVEN_HONE%\bin 的变量值
  • 完成后打开终端,输入命令 mvn 检查是否添加成功

配置本地仓库

  1. 安装配置完成后,在C盘的用户目录下会有个.m2目录即本地仓库,在.m2->repository下存放了本地的资源
  2. 如果需要自己配置仓库到别的地方,需要创建一个目录包含repository目录,然后再maven的安装目录下找到
  3. conf->settings.xml 在里面做出如下修改
  4. 找到settings下的注释中的<locatlRepository></locatlRepository> 复制到注释外,里面的路径就是自己刚刚创建的本地仓库的路径

image-20210707091924856

配置镜像仓库(因为maven默认使用的中央仓库在国外,下载或取资源较慢)

  1. conf->settings.xml 在里面做出如下修改
  2. 找到<mirrors></mirrors> 里面已经有了注释好的模板,复制粘贴到mirrors标签里面
  3. 我这里使用的是阿里云的镜像仓库

image-20210709124614716

Maven仓库

仓库是用于存放资源,包括各种jar包

  • 本地仓库:自己电脑上存储的资源仓库,链接远程仓库获取资源

  • 远程仓库:非本机电脑上的仓库,为本地仓库提供资源

    • 中央仓库:Maven团队维护,存储所有资源的仓库

      中央仓库的jar包都是开源的,不存储具有版权的资源

    • 私服:部门/公司范围内存储仓库,从中央仓库获取资源

      • 私服一般保存具有版权的资源,包含购买或自主研发的jar包
      • 一定范围内共享资源,仅对内开放,不对外共享

Maven坐标

  • 坐标是maven用于描述仓库中资源位置的
  • maven坐标组成:
    • groupld:定义当前maven项目隶属组织的名字(通常是域名反写,例如:org。mybatis)
    • artificial:定义当前maven项目名称(通常是模块名称,例如CRM、SMS)
    • version:定义当前版本号
  • maven坐标使用唯一标识,唯一定位资源位置,通过该标识开源将资源的识别与下载工作交给机器来完成

创建Maven工程

Maven工程的目录结构

image-20210707140701729

在和src同级目录下还需要一个pom.xml配置文件。具体可以去找开源的jar包里面查看。

maven项目构建命令

在项目的src目录下打开终端执行以下命令行进项目构建,第一次执行的时候需要下载插件,速度较慢

mvn compile		#编译
mvn clean		#清理
mvn test		#测试
mvn package		#打包
mvn install		#安装到本地仓库

插件创建工程

创建工程格式(在cmd命令行下执行,有些windows powershell无法识别到选项的命令)

mvn archetype:generate
	-DgroupId={pro-packging}	#项目包名
	-DartifactId={pro-name}		#项目的名字
	-DarchetypeArtifactId=maven-archetype-quickstart	#项目的类型
	-DinteractiveMode=false		#关闭交互模式

创建java工程

mvn archetype:generate -DgroupId=com.pg -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false

创建web工程

mvn archetype:generate -DgroupId=com.pg -DartifactId=web-pro -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false

idea下使用Maven

创建工程

1.新建一个maven项目(具体名称路径包名自己定义)

image-20210707174400559

2.配置成自己的maven,用idea自带绑定的也行

image-20210707172752214

3.创建完成后可以在左侧看见最基础的目录结构和右侧的一个maven生命周期管理和插件管理

image-20210707175125802

image-20210707175141951

原型模板创建maven工程

1.选择模板创建java工程,之后添加项目信息完成创建

image-20210707181759298

2.创建成功的目录,这里的模板没有给我们添加resources资源目录,我们可以自行添加

image-20210707182101097

1.模板创建web工程,之后添加项目信息完成创建

image-20210707182251680

2.创建成功之后的目录结构如下,这里模板没用给我们创建test目录,我们需要则手动添加

image-20210707182537914

在WEB-INF目录中,applicationContext.xml和logj.xml可以先删除,web.xml里面的有些配置可以根据需要做出删减

3.在maven资源坐标网中搜索找到tomcat的插件依赖Maven Repository: Search/Browse/Explore (mvnrepository.com)

image-20210707185521138

4.复制依赖到pom.xml中(可以修改一下端口号和虚拟路径)

image-20210707185748216

5.在webapp下新建一个index.jsp写上一点内容方便测试

6.找到并且刷新一下maven依赖,选中刚刚添加进来的tomcat插件选择run

image-20210707185942513

7.成功运行如下,根据地址打开网页即可看见刚刚编写的index.jsp内容了

image-20210707190050566


依赖管理

依赖传递

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被资源的资源如果依赖于其他资源,那么当前的项目则间接依赖于其他资源

依赖传递冲突问题

  1. 路径优先:当依赖中出现相同资源时,层级越深,优先级越底
  2. 声明优先:当资源在相同层级呗依赖时,配置顺序考前的覆盖靠后的
  3. 特殊优先:同级下配置了相同资源的不同版本,后配置的覆盖先配置的

image-20210707204735544

可选依赖

可选依赖指的是对外隐藏当前所依赖的资源(项目内的)

在pom的依赖中添加<optional>true</optional>即可实现</

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值