Maven基础

32 篇文章 0 订阅
18 篇文章 0 订阅

Maven简介

传统项目:
jar包不统一 不兼容

项目中有部分jar包会升级 没升级的部分会起冲突 管理复杂

Maven本质是一个项目管理工具


pom

POM Project Object Model 项目对象模型
项目对象形式进行管理
先写 pom.xml 的配置文件 代表一个项目

1个项目对应1个pom.xml文件
8个项目对应8个pom.xml文件


dependency

pom使用 依赖管理dependency

本地仓库
保存公共信息
👇
私服仓库
👇
中央仓库

依赖管理的东西都来自中央仓库


Build lifecycle & phases

项目构建
构建生命周期 又叫构建阶段 通过Maven插件实现构建操作
一个构建过程包含若干插件
一个插件对应若干构建过程


插件

插件给的结果可能是jar包 也可能是源代码、帮助文档、war包、xml等
多个插件做不同的任务 产出不同的产物


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


下载与安装

官方网站 https://maven.apache.org/download.cgi
请添加图片描述

请添加图片描述

Maven环境变量配置

依赖Java 需要配置JAVA_HOME
设置MAVEN自身运行环境 需要配置MAVEN_HOME

//配置仓库位置
请添加图片描述
settings.xml中
//本地仓库位置
在这里插入图片描述
//配置镜像仓库
在这里插入图片描述
全局setting与用户setting
公共配置
用户配置
在这里插入图片描述
在这里插入图片描述

第一个Maven项目(手工)
pom.xml文件格式

<?xml version="1.0" encoding="UTF-8"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	
	<groupId></groupId>
	<artifactId></artifactId>
	<version></version>
	<packaging></packaging>
</project>

compile时生成target文件
clean时删除target

idea创建Maven工程

依赖传递
依赖具有传递性
直接依赖
间接依赖

依赖冲突
路径优先 层级越浅 优先级越高
声明优先 相同层级 配置顺序靠前覆盖靠后的
特殊优先 同级配置相同资源

请添加图片描述
可选依赖
控制别人能不能看到自己

<dependency>
<optional>true</optional>//为true时 被依赖时 不被知道我依赖了这个项目(有点类似私有) 但是只能可选自己项目的 子项目的依赖不能可选化 有此需求时 **排除依赖**
</dependency>

排除依赖
主动断开以来资源 被排除的资源无需指定版本
即自己的项目的子项目有不想要的依赖 使用排除依赖排除
控制自己不看别人

<dependency>
<exclusions>
<exclusion>
///要排除的坐标
</exclusion>
</exclusions>
</dependency>

依赖范围
主程序范围有效(main 范围内)
测试程序范围有效(test文件夹范围内)
是否参与打包(package指定范围内)

scope主代码测试代码打包(上线编程)范例
compile(默认)YYYlog4j
testYjunit
providedYYservlet-api
runtimeYjdbc

依赖范围具有传递性

生命周期
clean:清理工作
default:核心工作 例如编译测试打包部署等
site:产生报告 发布站点等

clean
pre-clean
clean
post-clean

default
compile test-compile test package install等

site
pre-site
site
post-site
site-deploy

插件
插件与生命周期内的阶段绑定 执行到生命周期的阶段时 其实就是执行插件
默认maven会设定预设功能
通过插件可以自定义其他功能

生命周期 :是几岁
插件:那一岁的时候干了什么事

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值