Maven基础

项目管理和构建Java项目的工具,基于项目对象模型(POM)的概念

Apache Maven是一个项目管理和构建工具,用它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建,报告,和文档

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

  • 提供了一套标准化的项目结构(使得不同的IDEA,使用同一项目结构,使得项目可以在不同的idea中通用)

 

  • 提供了一套标准化的构建流程 (编译→测试→打包→发布)

  • 提供了一套依赖管理机制

        依赖管理就是管理你的项目所依赖的第三方资源,maven使用标准的坐标来管理依赖 使用<dependencies>表签导入依赖

      例如        

 

 依赖范围

 

 maven的模型

 

 仓库

1 本地仓库:

3 中央仓库:https://repo1.maven.org/maven2/

2 远程仓库(私服):一般由公司团队搭建的私有仓库

MAVEN的安装配置

下载

 

 

配置环境变量

这里的路径(变量值)多了一个\bin 去掉就可以了

 变量值maven的地址

因为我们在系统运行需要bin文件夹中二进制可执行文件 mvn

所需我们还要在系统path中添加一个环境变量

 

 安装成功测试

cmd 中查看 maven的版本  mvn -version   能够查看版本就成功了

 IDEA中配置maven

File->settings->File | Settings | Build, Execution, Deployment   在搜索框 搜索 MAVEN就找到maven的配置页面了

 

 

 

 maven中的seting.xml文件 了解更多 学习maven使用文档

 如果我们的jar包下载太慢,我们可以配置阿里的私服,打开seting.xml文件。在镜像标签中添加子标签,按照自带的注释内容填写就行

 

 localRepository 本地仓库配置标签

 Maven的基本使用

  • 常用命令
    • compile:编译
    • clean:清理
    • test:测试
    • package:打包
    • install:安装
  • Maven的生命周期
  • Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件

  • Maven 对项目构建的生命周期划分为3套

    • clean:清理工作

    • default:核心工作,例如编译,测试,打包,安装等

    • site:产生报告,发布站点等

  • 同一生命周期内,执行后边的命令,前边的所有命令会自动执行

 

 

   

 

 default 构建声明周期

 maven 坐标
  • Maven坐标是资源的唯一标识,通过使用坐标来定义项目或引入项目中需要的依赖
  • 坐标的组成
    • groupId:定义当前项目所属组织的名称(通常是域名反写,例如org.apache)
    • artifactid:当前Maven项目的名称(通常是模块名称)
    • version:当前项目的版本号

 

 

 

 

 

SNAPSHOT不是稳定的版本

 

依赖冲突

 

聚合

由于依赖传递会产生依赖冲突问题

 冲突原则

 

 

 可使用<optionnal>true</optionnal>可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性(我隐藏自己的依赖不让别人用,不透明)

<exclutions><exclution></exclusion></exclutions> 排除依赖  隐藏当前资源对应的依赖关系(别人不用我的依赖,不需要)

 

 依赖冲突

 

 

 

 打包方式

<packaging>pom 聚合工程的打包方式

<modules><module> 路径(从聚合工程的pom所在位置开始)<module><modules>管理的模块

继承

 

 

 

 

 

 

 <parent> <relativePath>父工程相对路径,可以使我们快速的找到我们的父工程</relativePath></parent>

 

 

 

属性

   <properties>

<justauth-spring-boot-starter.version>1.3.4</justauth-spring-boot-starter.version>
</properties>同一版本控制  比如一些包你需要一样的版本,改一个其他的也要跟着变

<dependency>
<groupId>com.xkcoding.justauth</groupId>
<artifactId>justauth-spring-boot-starter</artifactId>
<version>${justauth-spring-boot-starter.version}</version>
<exclusions>
<exclusion>
<artifactId>hutool-core</artifactId>
<groupId>cn.hutool</groupId>
</exclusion>
<exclusion>
<artifactId>fastjson</artifactId>
<groupId>com.alibaba</groupId>
</exclusion>
</exclusions>
</dependency>

如果在配置文件中需要使用(资源文件需要引用pom中的属性)

 

 

 

 

 这种写法就不局限于哪个子项目用这个配置了

 

 

 

 

 

 

 列如环境变量属性

 

 

 

${等号前面的key写进去}就能获得对应的版本了;

版本管理

 

 

多环境配置

 

 

 

 

 

 

跳过测试

 

 

 

 

 但是这种会全部跳过测试。

 

 

 

命令跳过测试

 

 

 

私服

  

 

 

https://help.sonatype.com/repomanager3/download

 

 




posted @   互联.王  阅读(42)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-11-04 11.7动手动脑作业
点击右上角即可分享
微信分享提示