MAVEN【我的第一张博客,炮打四灵部】

2023-12-02 04:40

本文主要是介绍MAVEN【我的第一张博客,炮打四灵部】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MAVEN-项目管理专家

Maven是什么?
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven最突出的作用就是 管理项目生命构建周期,管理项目中的jar包,管理项目的起初信息(文档管理,测试报告…)
Maven打包项目的目录结构的约定

└─src                      源码├─main                 主要的代码目录│  ├─java              存放java源码│  │                              │  └─resources         资源: 配置文件└─test                 测试相关
pom.xml					  项目的基本信息和相关配置

Maven的生命周期
Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。

POM
Pom是指 Project Object Model。POM是一个xml,在Maven里为pom.xm;。是Maven工作的基础,在执行task或者goal时,Maven会去项目的根目录下读取pom.xml获的需要的配置信息。
POM文件中包含了项目的信息和maven build项目所需的配置信息,通常由项目信息(如版本,成员),项目的依赖,插件和goal,build选项等。
POM是可以继承的,通常对于一个大型的项目或是多个module的情况,子模块的POM需要指定父模块的POM。

坐标
在Maven世界中,每个工程都有它唯一的 组织名、模块名、版本 ,这三个就是maven项目的坐标,一个maven工程可以打包成jar、war、pom等形式,但是它们都是拥有上述三个坐标的。我们在项目过程中导入的jar包就是通过上述坐标值唯一确定的。因此,我们在创建一个maven工程时会要求指定具体的 组织名、模块名、版本、打包方式。

<groupId>公司网址反写.项目名</groupId>
<artifactId>项目名-模块名</artifactId>
<version>大版本.分支版本.小版本号+版本类型</version>
<packaging>打包方式</packaging>

依赖传递
传递性依赖是Maven2.0的新特性。假设你的项目依赖于一个库,而这个库又依赖于其他库。你不必自己去找出所有这些依赖,你只需要加上你直接依赖的库,Maven会隐式的把这些库间接依赖的库也加入到你的项目中。这个特性是靠解析从远程仓库中获取的依赖库的项目文件实现的。一般的,这些项目的所有依赖都会加入到项目中,或者从父项目继承,或者通过传递性依赖。
Maven的依赖传递满足最短路径原则和优先声明原则。
例如: A->B->C(0.2) A->C(0.1) 因为A->C(0.1)路径较短,所以会选择0.1版的C作为依赖。
A->B->C(0.2) A->D->C(0.1) 因为A->B->C(0.2)先传递依赖,所以会选择0.2版的C作为依赖。
依赖类型与打包与范围
maven依赖的范围

Repositorries-仓库
Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径。得益于 Maven 的坐标机制,任何 Maven项目使用任何一个构件的方式都是完全相同的,Maven 可以在某个位置统一存储所有的 Maven 项目共享的构件,这个统一的位置就是仓库,项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。
仓库优先级:
本地仓库(local)->私服镜像(aliyun)->中央仓库central
Maven常用命令
mvn compile 编译源代码
mvn test 运行源代码
mvn clean 清除目标目录中的生成结果
mvn package 将项目打包称jar/war文件
mvn install 在本地Repository中安装jar
mvn clean install 删除已有在编译
mvn archetype:genate 生成maven项目结构

这篇关于MAVEN【我的第一张博客,炮打四灵部】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/443975

相关文章

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

IDEA与JDK、Maven安装配置完整步骤解析

《IDEA与JDK、Maven安装配置完整步骤解析》:本文主要介绍如何安装和配置IDE(IntelliJIDEA),包括IDE的安装步骤、JDK的下载与配置、Maven的安装与配置,以及如何在I... 目录1. IDE安装步骤2.配置操作步骤3. JDK配置下载JDK配置JDK环境变量4. Maven配置下

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

使用maven依赖详解

《使用maven依赖详解》本文主要介绍了Maven的基础知识,包括Maven的简介、仓库类型、常用命令、场景举例、指令总结、依赖范围、settings.xml说明等,同时,还详细讲解了Maven依赖的... 目录1. maven基础1.1 简介1.2 仓库类型1.3 常用命令1.4 场景举例1.5 指令总结

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构