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

相关文章

个人博客文章目录索引(持续更新中...)

文章目录 一、Java基础二、Java相关三、MySql基础四、Mybatis基础及源码五、MybatisPlus基础六、Spring基础及源码七、Tomcat源码八、SpringMVC基础及源码   随着文章数量多起来,每次着急翻找半天,而是新申请的域名下来了,决定整理下最近几年的文章目录索引。(红色标记为常检索文章) 一、Java基础 1、Java基础(一):语言概述2、J

做为技术人员为什么要写博客

原文链接:http://lusongsong.com/info/post/565.html

SpringBoot2+Vue3开发博客管理系统

项目介绍 博客管理系统,可以帮助使用者管理自己的经验文章、学习心得、知识文章、技术文章,以及对文章进行分类,打标签等功能。便于日后的复习和回忆。 架构介绍 博客管理系统采用前后端分离模式进行开发。前端主要使用技术:Vue3+ElementPlus。后端主要使用技术:SpringBoot2+MyBatisPlus+MySQL8+Redis,使用Minio服务做文件存储。 代码结构 后端代码

spring-boot-maven-plugin多模块install问题

一、问题描述:   项目分多个模块,open-eureka注册中心、open-provider服务提供者、open-common公共部分,provider依赖common。父pom使用spring-boot-maver-plugin插件,项目直接运行Main主类没问题,但是install报common中的类找不到符号. 二、查找问题:   spring-boot-maven-plugin 打

从JavaScript 数组去重看兼容性问题,及性能优化(摘自玉伯博客)

缘由 JavaScript 数组去重经常出现在前端招聘的笔试题里,比如: 有数组 var arr = ['a', 'b', 'c', '1', 0, 'c', 1, '', 1, 0],请用 JavaScript 实现去重函数 unqiue,使得 unique(arr) 返回 ['a', 'b', 'c', '1', 0, 1, ''] 作为笔试题,考点有二: 正确。别小看这个考点

Maven的依赖传递、依赖管理、依赖作用域

在Maven项目中通常会引入大量依赖,但依赖管理不当,会造成版本混乱冲突或者目标包臃肿。因此,我们以SpringBoot为例,从三方面探索依赖的使用规则。 1、 依赖传递 依赖是会传递的,依赖的依赖也会连带引入。例如在项目中引入了spring-boot-starter-web依赖: <dependency><groupId>org.springframework.boot</groupId>

maven settings.xml无效排查过程

1.首先执行mvn help:effective-settings,查找当前maven仓库地址 2.错误信息 [ERROR] Error executing Maven. [ERROR] 2 problems were encountered while building the effective settings [FATAL] Non-parseable settings /Users/x

从零开始搭建一个酷炫的个人博客

效果图 一、搭建网站 git和hexo准备 注册GitHub本地安装Git绑定GitHub并提交文件安装npm和hexo,并绑定github上的仓库注意:上述教程都是Windows系统,Mac系统会更简单! 域名准备 购买域名,买的是腾讯云域名,购买完成之后的域名管理解析域名域名备案 二、优化网站 使用的Fluid主题,Hexo Fluid 用户手册 增加图床,图片可以放在g

配置maven(3.5以上)

配置maven 1. 下载maven(3.5以上) 地址:http://maven.apache.org/download.cgi如图:下载的是3.6.3版本 2. 配置maven命令 使mvn命令可用 1.系统环境变量里配置MAVEN_HOME(如d:\maven-3.6) 2.path里配置%MAVEN_HOME%\bincmd测试 mvn -version 默认的mave

利用阿里云服务器建立简单的个人博客

感谢阿里云9.9服务器学生计划,让我有机会实现自己小时候的梦想。为了能够写出这篇教程,我就默默把服务器(Ubuntu14.04 64位)重置了,从头开始。你可以查看下网页效果。 克隆git远程库 由于服务器刚刚重置,属于全新的,所以没有装git。 ~# sudo apt-get update #获取最新软件包~# sudo apt-get upgrade # 执行更新操作。~# sudo