Maven依赖机制 工作原理 (分析maven项目和非maven项目的差别)

Maven概述,Maven环境变量配置,IDEA创建Maven项目,Maven的核心概念 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven是一款服务于Java平台的自动构建工具。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 阅读详情
转自:http://blog.youkuaiyun.com/qq_27093465/article/details/52960112


一句话总结:
在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级。
 
 详细解释:
让我们看一个案例研究,以了解它是如何工作的。假设你想使用 Log4j 作为项目的日志。这里你要做什么?

1.在传统方式

访问 http://logging.apache.org/log4j/
下载 Log4 j的 jar 库
复制 jar 到项目类路径一般是lib目录下
手动将其包含到项目的依赖
所有的管理需要一切由自己做
如果有 Log4j 版本升级,则需要重复上述步骤一次。

2. 在Maven的方式

  a.你需要知道 log4j 的 Maven 坐标,例如:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <groupId>log4j</groupId>  
  2. <artifactId>log4j</artifactId>  
  3. <version>1.2.14</version>  
  b.它会自动下载 log4j 的1.2.14 版本库。如果“version”标签被忽略,它会自动升级库时当有新的版本时。

  c.声明 Maven 的坐标转换成 pom.xml 文件。

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <dependencies>  
  2.     <dependency>  
  3.     <groupId>log4j</groupId>  
  4.     <artifactId>log4j</artifactId>  
  5.     <version>1.2.14</version>  
  6.     </dependency>  
  7. </dependencies>  
  d.当 Maven 编译或构建,log4j 的 jar 会自动下载,并把它放到 Maven 本地存储库
  e.所有由 Maven 管理


总结:
当建立一个Maven的项目,pom.xml文件将被解析,如果看到 log4j 的 Maven 坐标,然后 Maven 按此顺序搜索 log4j 库:
在 Maven 的本地仓库搜索 log4j 
在 Maven 中央存储库搜索 log4j
在 Maven 远程仓库搜索 log4j(如果在 pom.xml 中定义)

如何找到 Maven 坐标?
访问 Maven 中心储存库( http://search.maven.org/ ),搜索下载您想要的jar。

Python爬虫教程:抓取电商网站评论(以淘宝和京东为例) 通过本文的介绍,我们学会了如何使用Python编写爬虫,抓取淘宝和京东等电商平台的商品评论数据。我们介绍了如何使用电商平台提供的开放API以及如何通过模拟浏览器来抓取动态加载的数据。此外,我们还讨论了如何应对反爬虫技术,如何存储抓取的数据等。爬取电商平台的数据是一个强大的工具,能够为市场分析、消费者行为研究、产品优化等领域提供有力的支持。然而,在使用爬虫技术时,我们必须遵循法律法规,尊重平台的隐私政策,避免滥用数据。 阅读详情

相关推荐

ModbusRTU串口读写报文解析

解析MODBUS报文的格式,讨论异常状态、读多个寄存器与写多个寄存器

Serendipitor的博客 9212

maven简单了解,没有Maven和使用Maven的区别

maven简单了解,没有Maven和使用Maven的区别 Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务...

weixin_42981419的博客 944

电子发票二维码背后的秘密:10分钟看懂校验码、加密字符含义与防伪设计

本文深入解析电子发票二维码的结构与防伪设计,揭示校验码和加密字符的生成原理及验证方法。通过实际案例和技术细节,帮助财务人员理解电子发票的安全机制,提升防伪识别能力,确保税务合规。

weixin_29248611的博客 530

maven项目与普通项目的区别

maven项目 1:创建方式不同 (web项目举例) 第一种: 第二种: 2:目录结构 稍有不同 3:Pom文件 添加依赖信息,需要那个jar包的时候 加入哪个jar包的依赖,要不然无法使用这个jar里面的class 当你添加过后会显示在maven的运行环境里面 注意版本问题 以及maven依赖的问题 转载于:https://www.cn...

weixin_30709809的博客 7831

TP4054芯片实战:手把手教你设计USB锂电充电电路(附PCB散热优化技巧)

本文以TP4054芯片为核心,手把手教你设计稳定可靠的USB锂电池充电电路。文章详细解析了芯片的恒流恒压工作模式、关键外围元件选型计算,并重点分享了PCB布局与散热优化的实战技巧,帮助工程师从“能工作”提升到“工作得好”,确保充电效率与系统稳定性。

1a2s3d4f5g的博客 468

【Matlab/Unity】跨平台UDP通信实战:从数据发送到实时可视化

本文详细介绍了Matlab与Unity之间通过UDP协议实现跨平台通信的实战方法,涵盖数据发送、接收和实时可视化全流程。针对科研仿真和工业设计场景,提供优化代码示例和性能对比数据,帮助开发者解决低延迟传输、线程安全等关键问题,显著提升跨平台协作效率。

weixin_29044713的博客 153

Maven父子工程创建、与普通工程区别

先来看看普通工程:分三层架构(dao层、service层、controller层) 普通项目与 maven项目的区别: 如果有多个项目都是传统的SSM框架整合的项目,那么需要在每个项目中都放置一套 SSM 框架的 jar 包。 如果是 Maven管理的SSM工程,如果有多个项目,那么只需要一套 SSM 框架的jar包,实际项目中只用放置 jar 包的坐标即可。 ...

zgphacker2010的专栏 2050

二、基于C语言的JPEG解码代码详解

// JPEG解码 // 输入JPEG后输出Bitmap #include <stdio.h> #include <stdlib.h> #pragma warning(disable : 4996) unsigned int BuffIndex; // JPEG数据的位置 unsigned int BuffSize; // JPEG数据的大小 unsigned int BuffX; // 图像的横向尺寸 unsigned int BuffY; //

m0_37633745的博客 4456

maven常用命令以及下载的原理

1.maven分为三个资源库:本地资源库,中央存储库,远程存储库。 现在,Maven的依赖库查询顺序更改为: 在 Maven 本地资源库中搜索,如果没有找到,进入第 2 步,否则退出。在 Maven 中央存储库搜索,如果没有找到,进入第 3 步,否则退出。在java.net Maven的远程存储库搜索,如果没有找到,提示错误信息,否则退出。 2.maven常用命令:

niejiangnan9235的博客 646

字节跳动已上岸测试工程师的面试经验

这个时候发面经已经有点晚了,所以现在打算让这篇面经主要面向即将秋招的童鞋,当然现在还在春招的童鞋也可以看哈,我和大家一起聊聊关于测试的二三事。   一、测试工程师的工作是什么?   测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。   首先很明显的bug开发人员有时候自己就能找到,测试人员要有比开发人员更加全面的想法才能找到深层次的问题点,   其次,要端正一个态度就是测试人员不是一个电脑小白,相反国外顶级的测试开发工程师同时也是顶级的开发工程师甚至更厉害,所以作为一个测试工程师一定要

m0_60745607的博客 2933

RK3568平台开发系列讲解:UBOOT详细介绍

U-boot是一款广泛使用的开源引导加载程序,支持多种嵌入式操作系统和处理器架构。其主要功能包括系统上电时的硬件初始化、引导操作系统内核等。U-boot的引导流程通常包括Boot Code、idbloader.img、uboot.img、boot.img和rootfs.img等步骤。启动U-boot时,通过Debug串口连接板卡,按下ctrl+c键可进入U-Boot命令行模式。U-boot启动过程中会执行一系列初始化操作,如打印系统信息、初始化内存、加载内核设备树、初始化I2C、PMIC电源芯片、DRM框架

内核笔记 809

JavaEE之maven——项目和依赖包管理工具

目录 1.项目中的jar包如何管理? 2.Maven模型介绍及原理分析 2.1 Maven介绍 2.2 Maven主要有两个功能 2.3 Maven模型介绍 2.4 Maven依赖管理原理分析 3.项目构建与Maven的关系 3.1 构建的概念 构建过程 项目构建方式 4.Maven的安装与配置 5.Maven核心文件Pom.xml 6.搭建原生Maven项目 7.Maven常用指令 8.IDEA搭建Maven项目 9.修改本地仓库 10.自定义Idea中的Maven版本

qq_36279562的博客 2964

37、免驱动USB双目同步测距3D活体深度检测和RV1126结合V4L开发USB摄像头使用

基本思想:需要使用双目摄像头在rv1126上进行活体检测,然后将画面实时返回到桌面上,记录一下。第二步:刷机rv1126开发板系统和ssh远程连接,见参考目录。第一步:购买可见光的红外摄像头,见参考连接,在PC端测试可用。

sxj731533730 2621

Maven Project和Maven Pom的差别

Intellij Idea创建项目Maven Project和Maven Pom 我们在使用Idea创建Maven项目时,在 project metadata界面Type选项中有两个关于maven的选项,一个是Maven Project ,另一个是Maven Pom,该选择哪个?如下图 下面分别介绍一下这个两选项的含义: Maven Project 以maven为管理工具创建的一个管理项目,选择Maven Project选项,Idea 会帮你生成整个完整的工程结构,包括pom文件。如图: Maven P

ailifang的博客 6021

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Maven项目构建工具

** Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。** Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 ......

LKS_010620的博客 2614

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Maven依赖分析

背景 昨天帮一位同事排查了一个依赖冲突的问题。问题的现象就是在IntelliJ IDEA运行项目正常,但是打包(Maven assembly jar)之后传到服务器运行失败,报错:Caused by: java.lang.NoSuchFieldError: INSTANCE。 后来定位到某个类存在多个版本,其中一个版本是没有INSTANCE的。进一步发现项目所依赖的其他module,都是以asse...

weixin_30394333的博客 271

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Maven和Ant简介以及两者的区别

Maven 一.Maven简介 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为 make的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它信息(如开发人员/拥有者

ykblog.github.io 2万+

IDE项目创建Maven Project和Maven Pom的差别

IDE项目创建Maven Project和Maven Pom的差别

magic_818的博客 879

一文学会 maven集成 springboot 依赖

springboot 的 maven 依赖

m0_52542073的博客 628

Maven依赖关系原则

转载自: Maven依赖关系原则与冲突解决办法(含必杀技) 笔者JustryDeng Maven依赖关系原则(概念): 相关概念: 级别:         我们不妨把pom.xml里面的引用的依赖视为第一级,那么依赖中各自引用的依赖视为第二级...第三级... 路径长短:         我们不妨以从pom.xml出发,到抵达该依赖时经过的“级”的个数来作为路径长短的标准。 最短路径(不同级引用)原则: 若两个版

weixin_41869893的博客 1141

Maven 项目和 Maven Web 项目的异同点

🧩 Maven 项目 vs Maven Web 项目 — 全面对比总结jarwar.jar.warwebapppom.xml。

m0_62724751的博客 419

解决idea无法解析maven依赖或卡慢的问题以及原理解析

阿里云的默认配置是这个,mirrorOf代表匹配哪些仓库,这里默认匹配所有仓库,意味着你指定的仓库的链接全都无效,会被转到阿里云的镜像,也就是说当你配置了一个私有的repository,即便是你指定了链接为你的私有服务器地址,maven在检查settings.xml时发现有一个mirror匹配所有仓库,然后忽略你指定的私有地址,转而使用阿里云的镜像,所以希望阿里云镜像和私有仓库正常工作的话,使用上面的pom文件内配置仓库,或者把阿里云的mirror配置改为如下。这是因为阿里云maven镜像配置的问题。

qq_39553871的博客 1420

ideal导入项目后maven依赖 全部报错_Maven(四):聚合与继承

Maven不仅支持单模块项目同时还支持多模块项目,这里将介绍在多模块Maven项目中广泛应用的聚合、继承等概念,并就如何通过裁剪反应堆来加快构建过程进行介绍聚合对于复杂的Maven项目,一般建议采用多模块的方式来设计开发,便于后期维护管理。但是构建项目时,如果每次都需要按模块一个一个进行构建会十分麻烦,而Maven的聚合功能就可以很好的解决这个问题,当用户对聚合模块执行构建任务时,会对所有被其聚合...

weixin_39517797的博客 883

你竟然没用 Maven 构建项目?

一年前,当我和小伙伴小龙一起做一个外包项目的时候,受到了严重的鄙视。我那时候还不知道 Maven,所以搭建项目用的还是最原始的方式,小龙不得已在导入项目的时候花了很长时间去下载项目依赖的开源类库。 出于对我的尊重,小龙没有破口大骂,而是非常委婉地说了一句:“二哥,你好歹也有一定的知名度了,竟然没用 Maven 构建项目,真让我大开眼界啊。” 作为一名富有上进心的程序员,不能忍啊。借此机会,...

weixin_30519071的博客 93

Maven专题篇

Maven保姆级教程

qq_16804847的博客 7207

Maven(一)

Maven是Java项目构建和依赖管理工具,核心功能包括自动化构建、依赖管理和标准化项目结构。它通过POM文件定义项目配置,支持依赖传递和构建生命周期管理。Maven项目与工程的区别在于:前者是独立项目,后者是多模块组成的复杂工程体系。GAV坐标(groupId、artifactId、version)用于唯一标识依赖项。Maven生命周期包含清理、默认和站点三个阶段,常用命令如compile、package、install等。依赖解析机制通过分析pom文件实现自动下载所需依赖,包括间接依赖。

Java球球憋卷啦🥵 1569
上一篇: 类型转换的时候,.valueOf()和.parseX()的区别
下一篇: 17个你必须牢记的Win7快捷键《转》
withtoNature
博客等级 码龄10年 20粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值