Maven-基本概念

一、Maven是什么

Maven是一个项目管理的工具。根据许晓斌老师的《Maven实战》一书:它主要完成的工作包含三个方面:构建项目、依赖管理、项目信息管理。

二、构建项目

何为构建?在我们编写完代码后,我们会编译、测试、打包、部署我们的代码,这个过程就是构建项目——个人理解就是把我们编写的代码(包括.java,xml等配置文件)转变成可以对外提供服务的工作进程的一整个过程

在Maven诞生之前,我们曾使用Make作为构建工具,但是Make工具与操作系统关联,于是该工具难以实现跨平台的使用。但是我们的日常开发和测试也需要运行项目,这通常是在图形化操作系统中完成的(例如Windows,MacOS),而服务的最终部署又常常在Linux上,这就意味着我们要在不同平台使用Make工具,而Make工具不支持跨平台。于是Ant应运而生,Ant可以实现跨平台的使用,但是像Make一样仍然需要维护一个build.xml脚本用于构建项目,但是不同项目的build.xml是有诸多重复的——这意味着我们在做一些重复的工作。

Maven的出现解决了这个问题。Maven的构建非常简单,不需要开发者耗费大量精力去维护构建脚本,在构建项目的不同生命周期中,Maven为我们提供了大量现成的插件,于是我们只需要在IDE中集成Maven后,仅点点鼠标即可完成此前复杂的构建过程

三、依赖管理

在Maven诞生之前,开发者需要手动去下载需要的jar包并添加到类路径下。这样的问题是什么呢?

  • 繁琐:一个个去寻找下载jar包耗时且易出错;
  • 版本冲突难以管理:可能会依赖同一工程的不同版本,造成jar冲突;

Maven如何解决这些问题:通过在pom文件中声明所需依赖的方式,避免了开发者去手动下载jar包这一繁琐的过程;Maven的依赖管理在一定程序上解决了版本冲突的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue,Promise备忘

网址 https://www.promisejs.org/ 记录 在Vue.js或者其他JavaScript项目中,Promise 是一种处理异步操作的标准机制,用于解决传统的回调地狱问题,提供了一种更优雅、链式调用的编程模型。Promise对象代表一个异步操作的结果,它可…

22.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-加载配置文件到分析工具界面

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:21.配置数据保存…

python操作读取excl并进行数据统计

判断是否单元格是否为数字字母内容 bool(re.match(r^[a-zA-Z0-9]$, row[rownum 1]))判断行是否为float类型 type(row[rownum]) float获取workboot中sheet的名称 sheet.name 场景读取某个文件夹下的excl并统计每个sheet页中存在满足条件的 记录数 import re import os imp…

加快代码审查的 7 个最佳实践

目录 前言 1-保持小的拉取请求 2-使用拉取请求模板 3-实施响应时间 SLA 4-培训初级和中级工程师 5-设置持续集成管道 6-使用拉取请求审查应用程序 7-生成图表以可视化您的代码更改 前言 代码审查可能会很痛苦软件工程师经常抱怨审查过程缓慢,延迟下游任务&…

什么是GoogLeNet,亮点是什么,为什么是这个结构?

GooLeNet 亮点 最明显的亮点就是引入了Inception,初衷是多卷积核增加特征的多样性,提高泛化能力 ,比如,最下边是一个输入层,然后这个输入分别传递给1*1,3 * 3 ,5 * 5和一个最大池化层&#xff…

2024春招和暑期实习全面启动!

大家好,我是小柠檬。2024春招和暑期实习全面启动!最近,我注意到很多同学都在积极投递简历。 3D视觉求职星球 今天给大家推荐我们的3D视觉岗求职星球,里面时常发布大量3D视觉岗位和星球专属内推岗位。 篇幅有限,文节选…

最新全流程GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术深度应用

本文以地下水数值模拟软件GMS操作,本文中强调模块化教学,分为前期数据收集与处理;三维地质结构建模;地下水流动模型构建;地下水溶质运移模型构建和反应性溶质运移构建5个模块;采用全流程模式将地下水数值模…

后端项目访问不了

问题: 后端启动不了,无法访问网站 原因: 1.防火墙没有关 2.有缓存 3、项目没有启动 4、docker没有启动 解决: 先查看进程:docker ps,必须有三个 详细查看:docker ps -a exited代表没有开启…

flink:自定义数据分区

shuffle随机地将数据分配到下游的子任务。 rebalance用round robbin模式将数据分配到下游的子任务。 global把所有的数据都分配到一个分区。 partitionCustom: 自定义数据分区。 package cn.edu.tju.demo; import org.apache.flink.api.common.functions.; import org.apache…

trunk

介绍: 在华为企业级网络模拟平台(eNSP)中,“trunk” 是指用于在交换机之间传送多个 VLAN 数据的端口。在华为设备中,“trunk” 端口实际上就是可以承载多个 VLAN 数据流的端口。 当两台交换机之间需要互相传送多个 VLA…

关于多权威属性加密论文阅读

来源于2007年Multi-authority Attribute Based Encryption 从单权威机构到多权威机构的意义是什么呢? 基础方案(单权威方案SW)支持数据持有者对数据进行加密使用指定的属性集合并且指定一个数值d。当一个用户需要使用该数据时,需…

【LLM】Advanced rag techniques: an illustrated overview

note 文章目录 noteAdvanced rag techniques: an illustrated overview基础RAG高级RAG分块和向量化(Chunking & Vectorisation)搜索索引(Search Index)1. 向量存储索引(Vector Store Index)2. 多层索引(Hierarchical Indices)3. 假设问题和HyDE(Hypo…

自动化运维工具----Ansible入门详解

一、Ansible简介 什么是Ansible? 1.ansible是新出现的自动化运维工具,基于python开发,集合了从多的运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。…

intel realsense D405 在 ROS2 使用示例

1.点云示例 此示例演示如何启动相机节点并使其使用点云选项发布点云。 ros2 launch realsense2_camera rs_launch.py pointcloud.enable:true 以下示例启动相机并同时打开 RViz GUI 以可视化发布的点云。它执行上面的 2 个示例。 ros2 launch realsense2_camera rs_pointcl…

代码详解:2024美团春招实习笔试第一场0309,是难还是简单?

前言: 1.第一题(模拟) 2.第二题(模拟) 3.第三题(二维前缀和) 4.第四题的思维(双指针) 5.第五题难度比较大(并查集删边离散化) 一.小美的MT MT 是美团的…

第九个实验:一维数组和二维字符串数组的输入而输出

实验内容: 新建一维数组 新建二维字符串数组 输入内容,运行结果,在输出界面中显示输入的内容 第一步:新建项目 第二步:编程 添加一个INT数控件和字符串控件 修改控件: 复制前面板控件

伊萨卡训练代码

我们建议创建并激活 conda 环境,以确保在下面安装正确的软件包版本的干净环境。 # Optional but recommended: conda create -n ithaca python3.9 conda activate ithaca 克隆此存储库并进入其根目录。通过以下方式安装完整的 ithaca 依赖项(包括训练&am…

基于C++和Qt Creator实现的仿制网易云音乐播放器

目录 总体介绍开发环境技术介绍项目目录项目介绍特殊说明Gitee地址 总体介绍 仿照网易云播放器界面实现,目的在于锻炼C编程能力,熟练掌握Qt Creator各种组件的使用及样式设置、界面布局、QtPlugin技术、QXml读写XML文件方法、Qss文件的编写及使用等。 …

协程库项目—协程类模块

ucontext_t结构体、非对称协程 协程类 ucontext_t结构体 头文件中定义的四个函数(getcontext(), setcontext(), makecontext(), swapcontext())和两个结构类型(mcontext_t, ucontext_t)在一个进程中实现用户级的线程切换。 其中…

Spring Boot 中解决跨域的多种方式

Spring Boot 中解决跨域的多种方式 《踏过跨域障碍:Spring Boot 中解决跨域的多种方式》摘要引言正文何为跨域跨域问题出现特征方式一:使用 CrossOrigin 注解方式二:自定义 WebMvcConfigurer方式三:使用 Filter 进行跨域配置 结论…