首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Maven(六)之依赖管理

前面讲了maven一些关于Maven简单知识,今天给大家分享一些Maven依赖管理。相信用过maven的人都知道,它很重要功能就是通过依赖来添加jar包。...中坐标   俗称 gav:使用下面三个向量子仓库中唯一定位一个 Maven 工程   在项目 pom.xml 文件中,我们可以看到下面gav定义:     1)groupid:公司组织域名倒序...2.1、依赖详细配置   为了避免不知道说哪些配置属性,看下面图就明白了,就是dependency下属性配置,全部9个,讲其中7个。 ?   ...这个依赖传递好处,也有坏处,坏处就是jar包冲突问题,比如,A 依赖 B(B版本为1),C 依赖 B(B版本为2),如果一个项目同时需要A和C,那么A,C都会传递依赖将B给加载进来,     ...看图     1)开发阶段(MyEclipse提供),看下图以此证明我们说       java web 5.0项目: ?       java web 6.0项目: ?

80780

自动化构建工具Maven

Maven核心概念 那么既然你看到了这篇文章,暂且就认为你对Maven一定了解并且已经完成了Maven下载安装和环境变量配置。...关于Maven安装配置网上教程很多,就不做重复事情了,我们直接进入正题。...来看看关于Maven核心概念: 约定目录结构 POM 坐标 依赖 仓库 生命周期 继承 聚合 那么,么就从这八个方面来深入学习一下Maven。...,为中央仓库分担流量,减轻中央仓库压力,同时更快地响应用户请求 而仓库中保存内容就是Maven工程,可分为三Maven自身所需要插件 第三方框架工具jar包 自己开发Maven工程 6...7.继承 假设一个情景: Hello项目依赖JUnit版本:4.0 Hello2项目依赖JUnit版本:4.0 Hello3项目依赖JUnit版本:4.9 由于test范围依赖不能传递,

79130
您找到你想要的搜索结果了吗?
是的
没有找到

Maven依赖冲突问题

1、简介 1.1、什么依赖冲突 依赖冲突是指:在 Maven 项目中,当多个依赖包,引入了同一份不同版本时,可能会导致编译错误运行时异常。...3、如何排除依赖 我们先来解释下什么是传递性依赖 3.1、什么是传递性依赖 比如当我们项目中,引用了A依赖,A依赖通常又会引入B Jar 包,B可能还会引入C Jar 包。...3.2、如何排除依赖 这种情况下,想要解决依赖冲突,可以靠升级/降级某些依赖版本,从而让不同依赖引入同一库,保持一致版本号。另外,还可以通过隐藏依赖、或者排除特定依赖来解决问题。...要弄明白聚合工程,得先清楚“父子工程”概念: 父工程:不具备任何代码、仅有pom.xml项目,用来定义公共依赖、插件和配置; 子工程:编写具体代码项目,可以继承父工程配置依赖,还可以独立拓展...而Maven聚合工程,就是基于父子工程结构,来将一个完整项目,划分出不同层次,这种方式可以很好管理多模块之间依赖关系,以及构建顺序,大大提高了开发效率、维护性。

30610

不知道 maven 这个特性,你迟早要被坑

只要正确配置项目依赖Maven 在编译时候就可以自动下载项目所需所有依赖。但是如果我们使用不当,依赖管理可能会引入问题,特别是当我们使用如 [2.3.0,) 这样版本范围指定时候。...每次构建项目时,Maven 都会尝试获取新依赖版本。如果新版本引入了兼容更改,可能导致编译错误,甚至更微妙运行时错误。...如下所示,这边原本配置 fastjson 版本是 1.2.79,从右侧 maven 依赖中我们可以看到,项目中下载 fastjson 版本是 1.2.79。...另外如果一些软件自身升级是向下兼容,那么使用范围版本配置可能没什么关系,但是如果一些软件版本不是向下兼容,那么使用范围版本配置那肯定是问题。...在父 POM 中,我们可以用 元素定义一个多个依赖版本,然后在项目的各个模块中引用它们,无需在每个模块中指定版本。

10210

Java Maven POM配置参考

由于依赖关系是由Maven坐标描述,你可能会想:“这意味着项目只能依赖Maven工件!”答案是,“当然,但这是一件好事。”这迫使你只能依赖Maven可以管理依赖关系。...五个作用域可用: compile - 这是默认作用域,如果未指定则使用默认值。编译依赖在所有路径中都可用。此外,这些依赖关系会传播到依赖项目。...*版本,则更好版本号要求是[1,1.9999999)。 排除 限制依赖可传递依赖有时很有用。依赖可能具有错误指定作用域,或者与项目其他依赖冲突依赖。...exclusions告诉Maven不要在classpath中包含指定工件,即使它是该项目的一个多个依赖依赖(传递依赖)。例如, maven-embedder 依赖maven-core。...如果子POM没有元素,但父POM,则父值将成为有效值。请注意,这纯粹是对XML操作;涉及插件本身代码配置,只涉及元素,而不是它们值。

45630

IntelliJ IDEA 13试用手记(附详细截图)

从去年开始转java以来,一直在寻找一款趁手兵器,eclipse虽然是很多java程序员首选,但是发现一旦安装了一些插件,workspace中项目达到数10个以后,经常崩溃,实在影响编程心情....参看下图,可以发现左侧Project目录树里,已经显示了文件夹结构,双击pom.xml打开,我们添加一个junit依赖,intelliJ IDEA智能提示功能非常强,连依赖版本号,都能智能感知出来...注:如果是添加Junit依赖,记得要加test,即: ? 随便写几个试试 ?...还可以专门junit配置,再刚才点击+添加配置时,可以添加Junit配置,这个大家试试就知道了,不过,建议这么弄,因为一个更简单方法,如下图,先打开有@Test文件,然后把光标停在要测试方法...点击OK后,刚才错误就消除了,但是这时idea不会自动创建maven目录结构,所以建议还是把module给delete掉,重新再来一次,注意这次一定记得要手动选择一下module sdk,再点击finish

1.1K30

你竟然没用 Maven 构建项目

一年前,当我和小伙伴小龙一起做一个外包项目的时候,受到了严重鄙视。那时候还不知道 Maven,所以搭建项目还是最原始方式,小龙不得已在导入项目的时候花了很长时间去下载项目依赖开源库。...借此机会,必要隆重地向大家介绍一下 Maven 了。 01、Maven什么?...另外,认为 Maven 特别优秀一点是,它把项目依赖所有开源库都从远程中央仓库下载到了指定本地仓库中,也就是说,这些开源库可以在多个项目之间共用,无需重复下载——假如我用 Maven 构建项目的话...,小龙就不用下载那么多开源库了,他本地仓库中可能已经了——也就不会被鄙视了。...大多数 Maven 项目依赖列表都会很长很长,为了便于说明,下面只列出某些具有特色

59020

面试必问40个SpringBoot面试题!需要拿走SpringBoot面试题【建议收藏】

Spring Boot Starter Web 预先打包了这些依赖。 作为一个开发者,不需要再担心这些依赖和它们兼容版本。...Spring Initiatlizr 让创建 Spring Boot 项目很容易,但是,你也可以通过设置一个 maven 项目并添加正确依赖来开始一个项目。...手动设置一个 maven 项目 这里几个重要步骤: 在 Eclipse 中,使用文件 - 新建 Maven 项目来创建一个新项目 添加依赖。 添加 maven 插件。...如果你使用 Eclipse IDE,Eclipse maven 插件确保依赖或者文件改变一经添加,就会被编译并在目标文件中准备好!在这之后,就和其它 Java 应用程序一样了。...在 Spring Boot 项目中,当你确保下面的依赖都在路里面的时候,你可以加载 H2 控制台。

6.2K31

说实话,用完Gradle之后,有点嫌弃Maven了。贼好用!

但是如果你经常使用 Maven,可能会发现 Maven 一些地方用让人不太舒服: 来 Maven 配置文件是 XML 格式,假如你项目依赖包比较多,那么 XML 文件就会变得非常非常长; 来...这时候项目结构应该类似下图所示,使用 Maven 同学应该比较熟悉,因为这和 Maven 项目结构几乎完全一致。...相较于 Maven 一大串 XML 配置,Gradle 依赖仅需一行。...中间几行即是设置代理配置。当然其他几行也建议你设置一下,把 Gradle 运行时文件编码设置为 UTF8,增加跨平台兼容性。...虽然很多人都说 XML 维护起来麻烦,但是觉得,维护一个光是依赖就有几百行 XML 文件,不见得就比 Gradle 脚本简单。

84110

精选Spring Boot 面试题,帮你整理好了!

Spring Boot Starter Web 预先打包了这些依赖。 作为一个开发者,不需要再担心这些依赖和它们兼容版本。...Spring Initiatlizr 让创建 Spring Boot 项目很容易,但是,你也可以通过设置一个 maven 项目并添加正确依赖来开始一个项目。...手动设置一个 maven 项目 这里几个重要步骤: 1、在 Eclipse 中,使用文件 - 新建 Maven 项目来创建一个新项目 2、添加依赖。 3、添加 maven 插件。...如果你使用 Eclipse IDE,Eclipse maven 插件确保依赖或者文件改变一经添加,就会被编译并在目标文件中准备好!在这之后,就和其它 Java 应用程序一样了。...在 Spring Boot 项目中,当你确保下面的依赖都在路里面的时候,你可以加载 H2 控制台。 web 启动器 h2 jpa 数据启动器 其它依赖在下面: ?

3.4K30

换掉 Maven用它!!!

但是如果你经常使用Maven,可能会发现Maven一些地方用让人不太舒服: 1、一来Maven配置文件是XML格式,假如你项目依赖包比较多,那么XML文件就会变得非常非常长; 2、二来XML...这时候项目结构应该类似下图所示,使用Maven同学应该比较熟悉,因为这和Maven项目结构几乎完全一致。...相较于maven一大串XML配置,gradle依赖仅需一行。...中间几行即是设置代理配置。当然其他几行也建议你设置一下,把gradle运行时文件编码设置为UTF8,增加跨平台兼容性。...完成同样功能,gradle脚本长度要远远短于maven配置文件长度。虽然很多人都说XML维护起来麻烦,但是觉得,维护一个光是依赖就有几百行XML文件,不见得就比gradle脚本简单。

52320

不好意思, Maven 该换了!

但是如果你经常使用Maven,可能会发现Maven一些地方用让人不太舒服: 一来Maven配置文件是XML格式,假如你项目依赖包比较多,那么XML文件就会变得非常非常长; 二来XML文件不太灵活...这时候项目结构应该类似下图所示,使用Maven同学应该比较熟悉,因为这和Maven项目结构几乎完全一致。...相较于maven一大串XML配置,gradle依赖仅需一行。另外,最新 Java 面试题整理好了,大家可以在Java面试库小程序在线刷题。...中间几行即是设置代理配置。当然其他几行也建议你设置一下,把gradle运行时文件编码设置为UTF8,增加跨平台兼容性。...虽然很多人都说XML维护起来麻烦,但是觉得,维护一个光是依赖就有几百行XML文件,不见得就比gradle脚本简单。

56520

程序员31大Maven面试问题及答案

4.Maven 常用命令 5.Maven 哪些优点和缺点 1)优点 2)缺点 6.什么Maven坐标 7.通过坐标如何定位地址 8.Maven依赖范围哪些(在scope中指定) 9.Maven...Maven 主要功能主要分为 5 点: 依赖管理系统 多模块构建 一致项目结构 一致构建模型和插件机制 2.什么选用 Maven 进行构建? 首先,Maven 是一个优秀项目构建工具。...mvn clean package :清除以前包后重新打包。 5.Maven 哪些优点和缺点 1)优点 简化了项目依赖管理。...编译依赖在所有(编译,测试,运行)路径中都可用。此外,这些依赖关系会传播到依赖项目 provided:这很像compile,但表示您希望JDK容器在运行时提供它。...它只在编译和测试路径上可用,不可传递。 runtime:此范围表示编译不需要依赖,但需要执行依赖。它在运行时和测试路径中,但不在编译路径中。

19820

eclipse使用maven教程

2.1 m2eclipse安装 2.2配置eclipse 3创建一个maven项目 3.1项目结构 3.2Eclipse中maven常用命 3.3使用maven命令 0.什么maven 参考 https...,自己觉得,Maven核心功能便是合理叙述项目依赖关系,通俗点讲,就是通过pom.xml文件配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,...还有个问题,可能有人说需不需要设置maven环境变量,可以设置,但是如果只是使用Eclipsemaven插件而不需要使用命令行,就不用了。反正设置。...3.1项目结构 maven工程一般都是如下结构: pom.xml:用于定义或者添加jar包依赖 src-main:用于存放java源文件 src-test:用于存放测试用例。...也就是说,当你新建一个maven工程,或者clean一个maven工程后,如果没有使用这两个命令,直接针对进行测试,会跑出java.class.notfound错误

74910

Maven系列1

核心功能 Maven核心功能是合理叙述项目依赖关系,通俗点 就是通过pom.xml文件配置获取jar包不用手动去添加jar包,,这个pom.xml包后面会叙述,不过已经学习过maven...,如果相同架构项目十几个,那么我们就需要将这一份jar包复制到十个不同工程中我们一起来看看CRM工程大小 使用传统CRM项目 使用maven构建 4.Maven依赖管理 为什么使用maven...展示出了他对处理这种情形高度控制 传统web项目中,我们必须将工程所依赖jar包复制到工程中,导致工程变很大,那么maven是如何通过操作使工程变少呢 通过图解可以发现maven工程直接将...9.4 一组标准集合 maven将整个项目管理过程定义为一组标准集合,比如通过maven构建工程标准目录结构标准生命周期阶段,依赖管理标准坐标定义 9.5 插件目标 maven管理项目生命周期都是基于插件完成...10.使用idea开发meven项目 这个就是几个简单参数配置一下没什么东西讲,就放个流程图好了 1. 2. 3. 6. 7. 8. 9. 10

83920

自从用完Gradle后,有点嫌弃Maven了!速度贼快!

但是如果你经常使用Maven,可能会发现Maven一些地方用让人不太舒服: 1. Maven配置文件是XML格式,假如你项目依赖包比较多,那么XML文件就会变得非常非常长; 2....这时候项目结构应该类似下图所示,使用Maven同学应该比较熟悉,因为这和Maven项目结构几乎完全一致。...相较于maven一大串XML配置,gradle依赖仅需一行。...虽然很多人都说XML维护起来麻烦,但是觉得,维护一个光是依赖就有几百行XML文件,不见得就比gradle脚本简单。...也许是因为上面说原因,也许其他原因,不得不承认一件事情就是gradle作为一个新兴工具已经了广泛应用。spring等项目已经从Maven切换到了gradle。

1K00

Maven:都住手,来一统天下

这个项目他是用Eclipse开发现在要用IDEA继续,担心结构上出现问题? 为什么一个Maven项目被导入进IDEA了能正常work,它项目结构Project Structure是咋样?...Project项目设置 鼠标选中项目(和IDEA不一样,此处必须选中),右键选择Properties就可以对该项目进行配置配置“多如牛毛”,令人望而生畏呀。...这里就不一一介绍了,图形化东西了解起来也容易。但是你是否发现,众多配置中却不见Module字样,怎么肥四?...解释.settings目录 eclipse项目.settings目录下配置比较杂,各种后缀名都可能见到,绝大多数是文本文件,格式为propertiesxml。...相关喽: 什么原因?

1.4K30

Maven什么Maven概念+作用+仓库介绍+常用命令

核心功能 Maven核心功能是合理叙述项目依赖关系,通俗点 就是通过pom.xml文件配置获取jar包不用手动去添加jar包,,这个pom.xml包后面会叙述,不过已经学习过maven...2.Maven能够解决什么问题 在想Maven可以解决什么问题之前我们先来想想我们开发过程中经常遇到什么问题 1、我们需要引用各种 jar 包,尤其是比较大工程,引用 jar 包往往几十个乃至上百个...其实这我们在前面就提到过了即通过配置pom.xml文件来配置依赖,而Maven一个核心特征就是依赖管理,当我们涉及到多模块项目(包含成百个模块或者子项目),管理依赖就变成了一个极为困难任务Maven...9.4 一组标准集合 maven将整个项目管理过程定义为一组标准集合,比如通过maven构建工程标准目录结构标准生命周期阶段,依赖管理标准坐标定义 9.5 插件目标 maven管理项目生命周期都是基于插件完成...10.使用idea开发meven项目 这个就是几个简单参数配置一下没什么东西讲,就放个流程图好了 1. ?

40.6K3225

maven入门基础学习

项目管理工具,管理jar,一个仓库 2.maven什么用?...​ pom.xml——maven 项目核心配置文件 ​ 注意:如果是普通 java 项目,那么就没有webapp 目录 三 、 mavenArchetype原型 1.Archetype是什么?...SNAPSHOT //当前项目的版本,SNAPSHOT,表示是快照版本,在开发中release为正式发行版 3.maven两大优点 1.依赖管理 坐标,处理结果...1.什么依赖范围? * maven项目在构建几个步骤中使用jar包,通俗讲就是告诉maven什么时候使用该jar包 2.分别有哪些依赖范围?...初始化成功后,控制台弹出信息 2.Idea集成 maven 创建项目 初始化后出现目录结构 刚刚初始化完成目录结构是这样,如果要servlet要用注解配置也不能删除web.xml,会无法访问servlet

77220

实话实说 | 这些maven命令,你会几个?

奇怪是,为什么还要搞个mvn compile呢? ? 听了这位朋友这么说,想起了,刚刚开始使用mvn时候,仿佛也是这样老大就是这么教我就这么用,感觉蛮爽... ?...细心点也会发现里面Test相关都是junit包目录下,并且在pom.xml文件中我们也看到了由于默认依赖junit。 ? ok,以上便是使用maven命令创建一个java标准项目。...,maven也不知道我们需要是xml、properties还是什么配置文件。...mvn -Dmaven.test.skip=true:执行测试用例,也编译测试用例。...mvn help:all-profiles 列出当前项目可用配置文件。 mvn help:describe:描述插件和/Mojo(Maven普通Old Java Object)属性 。

77610
领券