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

Maven 依赖的解析规则

对于 Java 开发工程师来说,Maven依赖管理和代码构建的标准。遵循「约定大于配置」理念。Maven 是 Java 开发工程师日常使用的工具,本篇文章简要介绍一下 Maven依赖解析。...依赖树结构 在 pom.xml 的 dependencies 中声明依赖包后,Maven 将直接引入依赖,并通过解析直接依赖的 pom.xml 将传递性依赖导入到当前项目,最终形成一个树状的依赖结构。...依赖循环 比如:A 依赖了 B,同时 B 又依赖了 A。这种循环依赖可能不会直接显现,但是可能会在一个很长的调用关系显现出来,也可能是模块架构的设计不合理。...对于依赖排除: exclusion 会造成依赖重复扫描和缓存。 在距离根节点越远的 exclusion,影响的范围越小。 依赖高度越高,引入 exclusion 的代价越大。...依赖分析 IDEA 插件 使用 IDEA 的话,可以在对应项目中右击,选择 Diagrams -> Show Dependencies。

2.9K40

Maven Helper插件——实现一键Maven依赖冲突问题

it contains a single, compatible version of com.google.common.collect.FluentIterable 出现这个问题,大概猜测到,应该是Maven...依赖冲突导致的,忽然想到,是否有可以检查maven依赖冲突的插件呢,一查发现还真有,而且极方便。...这个Idea插件,叫Maven Helper,根据File -> Settings -> Plugins -> Marketplace 输入Maven Helper即可找到。...image.png 切换至【Dependency Analyzer】栏,在搜索框输入冲突包guava,即会出现,guava都被哪些包依赖了,当多个组件包都依赖了同一个包但又不同版本时,很容易久出现各种冲突...红色部分即是导致启动报异常的地方,可见,springfox-core已经依赖的是20.0包,但其他还依赖18版本的包,这里可以把报错提示的18.0版本的通过exclusion去除即可。

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

Maven 依赖调解源码解析(二):如何调试 Maven 源码和插件源码

那么问题来了,我们对 Maven 源码并不熟悉,总不能一头扎进去看。那么,我们就用调试的方式分析吧,简单且精准。 那么问题来了,mvn 源码和插件源码如何调试呢?...因此我们需要以调试方式启动 Maven 源码,以便让流程继续走下去。 打开 apache-maven-3.6.3 项目,新建一个远程调试配置,端口选择 8000。如下图所示。...注 1:本文以 Maven 核心源码为例介绍了调试流程,其实 Maven 插件的源码调试方法也是一模一样的。...注 2:这种调试的方法很灵活,我们可以随便选择不同的业务项目, Maven 源码进行联调。当然也有很多调试 Maven 源码的方法,但要设置一大堆东西。...搞清楚如何调试 Maven插件源码后,我们就可以开始正式分析了。

80931

Maven】分模块开发设计依赖管理

目录 一、分模块开发设计 1. 分模块开发的意义 2. 分模块开发(模块拆分) 二、依赖管理 1. 依赖传递 2. 可选依赖 3....排除依赖 4 可选依赖和排除依赖的区别 一、分模块开发设计 1. 分模块开发的意义 问题导入 分模块开发对工程有什么好处? 模块拆分原则 目的:项目的扩展性变强了,方便其他项目引用相同的功能。...依赖具有传递性 直接依赖:在当前项目中通过依赖配置建立的依赖关系 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的...可选依赖指对外隐藏当前所依赖的资源————不透明 com.itheima maven_03_pojo...--排除依赖是隐藏当前资源对应的依赖关系--> log4j

57730

生成 方法调用图 和 Maven 依赖图——IDEA 插件

IntelliJ IDEA 插件 Draw Graph 生成 方法调用图 和 Maven 依赖图 用法 单个 java 文件调用图 或 所有 pom.xml 依赖图: 打开右边的图...工具栏 打开 *.java/pom.xml 文件 多个 java 文件调用图 或 部分 pom.xml 依赖图: 选择多个文件 打开右键菜单 选择调用图 关于 只支持 2020.2...介绍效果图 方法调用图 方法调用图 Maven 依赖图 同类插件对比 Draw Graph 打开文件自动生成,多个文件右击生成 Draw Graph Call Graph 弹出框选择文件生成...IDEA 自带依赖矩阵 上图左边文件显示注释效果是 Show Comment 插件 我的项目 在文件、行末、JSON 显示注释:Show Comment 生成 方法调用图 和 Maven 依赖图...:Draw Graph 查找多个文件或行的作者 导出搜索:Find Author 自动同步覆盖率 和 调试中抓取覆盖率:Sync Coverage

1.5K40

DockerJib(maven插件版)实战

关于Jib Java应用如果要运行在docker环境,就要制作包含该应用的docker镜像,Jib就是用来制作此镜像的的工具,有三种使用Jib的方法: Maven插件:jib-maven-plugin;...:通过jib的maven插件将java应用构建成docker镜像; 实战环境信息 操作系统:CentOS Linux release 7.6.1810 docker:1.13.1 jdk:1.8.0_191...maven:3.6.0 接下来一起开发一个java应用,并使用jib的maven插件,来构建该应用对应的docker镜像; 源码下载 如果您不打算写代码,也可以从GitHub上下载本次实战的源码,地址和链接信息如下表所示..." xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0...插件的节点中增加了插件jib-maven-plugin的配置; b. from节点用来设置基础镜像,一般使用openjdk官方镜像,如果您想了解更多请参考《openjdk镜像的tag说明》; c.

1.4K20

Maven的生命周期插件

文章目录 项目构建生命周期 插件 项目构建生命周期 Maven构建声明周期描述的是一次构建过程经历了多少个事件 Maven对项目构建的生命周期分为3套 clean:清理工作 default:核心工作,...执行一些需要在生成站点文档之前完成的工作 site:生成项目的站点文档 post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备 site-deploy:将生成的站点文档部署到特点的服务器上 插件...插件生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能 默认maven在各个生命周期上绑定有预设的功能 通过插件可以自定义其他功能 以打源码包为例,同时生成test源码: org.apache.maven.plugins...maven-source-plugin 2.2.1

36820

一文理解Maven如何解决依赖冲突循环依赖

Maven依赖冲突循环依赖是开发过程中比较令人头疼的问题。 依赖冲突 首先介绍下Maven依赖管理的策略。 依赖传递:如果A依赖B,B依赖C,那么引入A,意味着B和C都会被引入。...最近依赖策略:如果一个项目依赖相同的groupId、artifactId的多个版本,那么在依赖(mvn dependency:tree)中离项目最近的那个版本将会被使用。...解决循环依赖 使用build-helper-maven-plugin插件可以解决无法构建的问题,但是只是一个规避措施,工程的依赖关系依然是混乱的。 比如A依赖B,B依赖C,C依赖A的情况。...Maven的打包命令 IDEA中的Maven插件功能如图: ? 这个图表示Maven逐次递进(执行下面的命令就会包含上面的)的打包命令。 常用的打包命令: clean:清理本地工程Jar包。...(接口实现分离) test:测试需要,不会打入包中。

5.5K40

推荐一款 IDEA 插件!解决Maven依赖冲突的好帮手!

Maven依赖机制会导致Jar包的冲突。举个例子,现在你的项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。...3、Maven Helper 看到这里,你可能会有一个疑问。如何才能知道自己的项目中哪些依赖的Jar包冲突了呢?Maven Helper这个InteliJ IDEA的插件帮我们解决了这个问题。...插件的安装方法我就不讲了,既然你都会Maven了,我相信你也是会安装插件的。 在插件安装好之后,我们打开pom.xml文件,在底部会多出一个Dependency Analyzer选项 ?...4、小技巧 除了使用Maven Helper查看依赖冲突,也可以使用IDEA提供的方法——Maven依赖结构图,打开Maven窗口,选择Dependencies,然后点击那个图标(Show Dependencies...)或者使用快捷键(Ctrl+Alt+Shift+U),即可打开Maven依赖关系结构图 ?

9.7K30

Android编程权威指南笔记3:Android Fragment讲解Android Studio中的依赖关系,如何添加依赖关系

碎片的交互是通过FragmentManager,可以通过Activity.getFragmentManager()和 获得 Fragment.getFragmentManager()。...给个链接你们看:http://blog.csdn.net/lmj623565791/article/details/37970961 Android Studio中的依赖关系 在Android Studio...中有六种依赖 Compile,Provided,APK,Test compile,Debug compile,Release compile 要使用支持库就必须添加依赖关系:打开应用模块下的...testCompile 'junit:junit:4.12' compile 'com.android.support:support-v4:26.0.0-alpha1' } 如何添加依赖关系...text size:指定设备上显示的文字像素高度; margin:指定视图组件间的距离; padding:指定视图外边框内容间的距离。

1.7K30

Maven项目】在项目开发中对于NAPSHOT、Maven依赖关系管理以及三个标准生命周期

常规版本不同,Maven每次构建时都会检查远程存储库中的新快照。...在快照的情况下,每次应用ui团队构建项目时,Maven都会自动获取最新的快照(数据服务:1.0-snapshot)。 Maven依赖关系管理 Maven的一个核心特性是依赖关系管理。...Maven通过读取项目文件(pom.xml)来查找项目之间的依赖关系。...Maven将在其他方面帮助我们。 所有包含的库的图形将通过传递性依赖关系快速增长。当存在重复的数据库时,可能的情况将继续增加。Maven提供了一些函数来控制传递依赖的程度。...Maven实际上是一个依赖插件执行的框架,每个任务实际上都是由插件完成的。

74820
领券