maven排包排不掉问题

Maven中关于jar包冲突的2种排查方案及3种解决方式 在实际开发中,多模块项目常会使用Maven进行包管理。在poml文件中进行包依赖时,常存在引入一个jar包中默认依赖了其他的jar包的情况。这样很容易导致jar包冲突,从而产生一些诡异问题,如版本问题导致的类、方法找不到等。 下面我们将聊聊具体关于依赖冲突产生的原因、排查方式以及解决的方案。 1.什么是依赖传递 举个简单例子,比如一个多模块项目依赖关系如下图。其中bepe-dal引入了common-lib,当bepe-manager模块中引入bepe-dal时,common-lib这个依赖也会被引 阅读详情

现象: 遇到了一个比较老的项目。项目能启动起来。但是maven构建的时候总是会去加载一个仓库中不存在的废弃的jar包版本;项目中又有别的jar包也依赖了这个jar。然后还有好多项目模块也依赖这个jar。所以mave视图里面一片红。
笔者又是个洁癖的码农。怎么能忍呢。结果就去尝试看看哪个jar包依赖了这个不存在的jar。结果通过分析依赖关系找了半天,发现所有依赖这个问题包的jar的pom里面的版本又都不是这个有问题的版本;然后试着排包。排除了之后发现还是不行。依旧会去加载这个包。当时挺郁闷的。后来把项目的pom简化到只有两个包,然后发给了别人帮忙一起分析。结果有一个小伙伴一下子就找到问题了。其实是项目中依赖了一个父pom依赖管理(dependencyManagement)里面引用了这个jar的,这样所有子项目就都会使用这个父里面的版本了。但是这个父pom本地代码又搜不到。
还好后来发给别人看了。自己已经是思维定势了。在庞大的项目结构里面迷失了方向,分析半天后还是以为还有什么别的包里面依赖了这个包。然后把项目精简到只有几个依赖发给别的伙伴直接就找到了是在父模块中。果然人多力量大。

解决方案就是在自己的项目中通过依赖管理(dependencyManagement)把父项目中的那个有问题的版本给覆盖掉。问题得以解决;

从零构建MAVLink通信:PX4飞控与QGC的协议握手全解析 本文详细解析了PX4飞控与QGC地面站通过MAVLink协议进行通信的全过程,重点介绍了航点传输协议的状态机设计、INT类型消息的优化优势以及异常处理与调试技巧。通过实战案例和性能优化建议,帮助开发者高效构建无人机通信系统,提升数据传输效率与稳定性。 阅读详情

相关推荐

ATGM332D模块串口配置保姆级教程:从9600波特率到NMEA数据过滤,一次搞定

本文提供ATGM332D模块串口配置的详细教程,涵盖从基础硬件连接到高级NMEA数据过滤的全过程。内容包括波特率优化、数据输出频率调整、NMEA语句过滤等实用技巧,帮助开发者快速掌握GNSS模块配置,提升定位系统性能。

weixin_30664051的博客 513

Maven版本依赖exclusion失效

maven依赖冲突,exclusion标签排除不生效

qq_41204638的博客 1313

大疆M3508电机使用CAN通信进行速度PID闭环控制详解

目录一. 简介二. 电机通信协议三. 电机PID控制原理四. 官方代码移植-中断接收五. 官方代码移植-查询接收 一. 简介 之前写过一篇文章STM32实现四驱小车(五)电机控制任务——电机速度PID控制算法,其中是以大疆的M3508电机为例进行讲解的(没错,就是RoboMaster机器人同款电机,不过Robomaster上的电机好像是小一号的M2006)。不少小伙伴私信问我要代码,我都回复说不是有官方demo么。后来问的人多了我大概明白了,看来官方的Demo还是有点门槛。可能是带FreeRTOS操作系统看

qq_30267617的博客 7万+

maven项目依赖无法排除的问题

如果无法排除 请检查 确保这个版本不是特别低的!!!!! 

Sir_He的博客 1044

芯片低功耗设计实战:CPF与UPF流程选择指南(附工具对比)

本文深入探讨了芯片低功耗设计实战中CPF与UPF流程的选择策略。文章从两者本质差异与演进脉络出发,结合Cadence与Synopsys工具链的深度支持实况,为工程师提供了基于项目场景的决策框架。重点分析了在混合工具链环境下如何实施流程与验证,并强调了利用Spyglass等工具确保功耗意图无损传递的关键技巧,旨在帮助团队做出明智的流程抉择,提升设计效率与可靠性。

weixin_29197051的博客 405

SAP子公司财务账套配置实战:从公司代码到记账期间变式的关键步骤

本文详细介绍了为SAP子公司快速配置财务账套的实战步骤。通过复用母公司成熟配置,重点阐述了从创建公司代码、关联控制范围到分配记账期间变式的核心流程,帮助顾问在一两个小时内完成核心骨架搭建,实现高效集团财务管控。

cake8的博客 166

Maven 最全排包指南&maven包加载原理简述

引言 作为一名java开发,最烦的就是环境问题引起的故障,首先定位问题难,解决后一身疲惫,成就感弱,作为最常见的maven包冲突,本文总结两种排包过程思路,尤其推荐第二种,基本可解决所有的包冲突问题。然后会简要分析包加载的原理,使读者能知其然知其所以然。本文所属的解决步骤依赖于idea开发工具,eclipse使用者也可按此思路去解决问题。 一、手动排包 第一步:明确冲突的jar包以及所在的module 第二步:找到对应module,打开pom文件 第三步:右键maven-show denpency,打开依赖

weixin_37935945的博客 4261

探索robotics-toolbox-python:从基础安装到高级机器人运动学应用

本文详细介绍了robotics-toolbox-python工具箱,从基础安装、环境配置到机器人运动学与动力学的核心应用。通过D-H参数、URDF导入和内置模型三种方式快速构建机器人模型,并演示了正逆运动学计算、关节空间与任务空间轨迹规划以及三维可视化仿真。该工具箱极大地简化了机器人算法开发流程,是进行机器人学研究和应用实践的强大工具。

i1j2k的博客 496

Java工程maven中排包exclude的操作

在开发项目时依赖了新的jar包,结果工程启动时报错了,此时应该是包依赖冲突的问题。

benben044的专栏 2099

手把手教你复现KDD 2024时空预测顶会论文:以UniST和ImputeFormer为例的代码实战与避坑指南

本文详细指导如何复现KDD 2024顶会论文中的UniST和ImputeFormer模型,涵盖环境配置、数据处理、模型训练及评估等关键步骤。通过实战案例和避坑指南,帮助研究者掌握时空预测与插补技术,提升在智慧城市、交通管理等领域的应用能力。

weixin_29204205的博客 279

STM32F4实战:手把手教你实现USB OTG双模式切换(Host/Slave)

本文详细介绍了如何在STM32F4上实现USB OTG双模式切换(Host/Slave),包括硬件架构解析、软件实现机制、主机模式下的U盘读写以及从机模式下的自定义设备开发。通过实战案例和优化技巧,帮助开发者快速掌握USB双角色功能,提升嵌入式系统开发的灵活性和效率。

u9v0w的博客 730

Maven依赖包冲突的两种排查和解决方案

在“Maven Helper”窗口,你可以选择有冲突的依赖项,并查看插件提供的解决方案。在解决了所有依赖冲突后,保存pom.xml文件,并运行Maven构建命令(如mvn clean install)来验证是否所有冲突都已被成功解决。在pom.xml中使用dependencyManagement可以统一管理项目中的依赖版本,确保所有依赖使用相同的版本。命令:这个命令可以展示项目中的所有依赖关系树,识别哪些依赖引入了冲突的包。通过依赖树,可以确定哪些依赖库引入了冲突的包,并确定它们的版本。

是我的温柔啊 2483

基于深度学习YOLOv5的草莓成熟度检测系统详解(深度学习模型+UI界面+Python代码+训练数据集)

数据采集与预处理模块:负责收集草莓图像,并进行数据增强和标注。深度学习模型训练模块:使用YOLOv5模型进行草莓成熟度检测模型的训练。模型推理模块:加载训练好的模型,对输入图像或视频进行草莓成熟度检测。UI界面模块:提供用户交互界面,方便用户上传图像或视频进行成熟度检测。本文详细介绍了基于YOLOv5的草莓成熟度检测系统的构建过程,包括数据集的构建、模型的训练与推理、以及UI界面的设计。通过本文的指导,读者可以快速搭建一个高效的草莓成熟度检测系统,并应用于实际场景中。

斌擎科技 525

排包

当报java.lang.NoClassDefFoundError 这个错误的时候,是由于报冲突引起,是两个不相同版本的报导致 解决: 首先去到spring Boot的入口类所在的pom,然后使用pom提供的报冲突解决工具将版本低的包排掉 ...

非衣鲲化的博客 423

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

两种实现Java类隔离加载的方法

一 什么是类隔离技术 只要你 Java 代码写的足够多,就一定会出现这种情况:系统新引入了一个中间件的 jar 包,编译的时候一切正常,一运行就报错:java.lang.NoSuchMethodError,然后就哼哧哼哧的开始找解决方法,最后在几百个依赖包里面找的眼睛都快瞎了才找到冲突的 jar,把问题解决之后就开始吐槽中间件为啥搞那么多不同版本的 jar,写代码五分钟,排包排了一整天。 上面这种情况就是 Java 开发过程中常见的情况,原因也很简单,不同 jar 包依赖了某些通用 jar 包(如日志.

KK的博客 1179

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Maven常见操作命令

mvn install:install-file -DgroupId=xxx.xx.xxxx -DartifactId=xxx -Dversion=0.0.1 -Dpackaging=jar -Dfile=路径/xxx-0.0.1.jar。对父工程P、子模块A以及依赖于A模块的B、C模块执行mvn clean install操作。说明:对父工程P、子模块C、以及子模块C依赖的B、A模块执行mvn clean install操作,涉及到的P、A、B、C模块全部install到本地。

Mr. David 专栏 4086

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Maven

管理和构建java项目的工具,基于POM(project object model)项目对象模型,通过一小段描述信息来管理项目构建。

qingchenqx的博客 399

mvn 打包jar,排除第三方依赖包,maven常用插件

mvn clean package 常用插件

nalanxiaoxiao2011的博客 9325

maven自动化排包和pom冲突解决插件Maven Helper

1. 安装插件Maven Helper 由于我使用的idea,本文将以idea为例介绍Maven Helper的安装和使用。 打开设置界面(command + 逗号) 搜索plugin菜单 在大红色箭头处查找需要安装的插件名称Maven Helper,第一个便是 点击install安装插件 完成后重启idea 2. 查看pom依赖树 打开pom文件,下方会多处一列切换菜单 Text模式下就是我们常用的pom文件形式,切换到Dependency Analyzer,可以看

aizhupo1314的博客 1249

Maven排除冲突包

在项目中,经常遇到引用jar包冲突的问题。 一、Maven中jar包冲突原因 1、传递依赖 2、jar包冲突原理 二、检测包冲突工具 1、命令行方法 找到冲突包所在的父包 (1)打开idea的Terminal (2)输入命令: mvn dependency:tree >> a.txt (3)打开生成的文件,分析包的依赖关系,找到冲突的包 (4)在pom.xml中排除掉依赖的jar包...

hello stone 1239

【Java】maven | 打包排除

一、说明 1、maven项目 2、期望: 达成jar包后,希望删除里面的某些内容(排除打包) 二、解决方案 1、解决方案 pom中,build下,plugins新增插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1...

hgSuper的博客 858

Maven依赖排除 禁止依赖传递 取消依赖的方法

    大家都知道Maven的优点是依赖管理,特别是前期使用ANT的开发者都有很多感触。最近要开发一个java工程,定的要使用maven,会使用hadoop和hbase的客户端,而引入一个hadoop-client的jar或者hbase的jar包,会依赖十几个其他的jar包,而这些jar包的功能我又用不上,所以这种依赖反倒成了工程瘦身的负担。关键我还有强迫症,见到这些对工程无用的包,我就抓狂。所...

用技术点亮生命,用产品温暖人心,探讨coding真谛,感悟技术精神。 3552

maven排除依赖冲突问题

今天碰到了一个诡异的问题。 jedis版本原来用的是2.9.0,想要替换成3.0.1,涉及到父pom,搞了半天,试了各种办法,版本都改不过来。 项目依赖的始终是2.9.0,并且从当前pom到父pom,都找不到在哪里指定了2.9.0。 最终,采取下述方法1,问题解决。 maven依赖冲突一般有四种解决方式,按照优先级(从高到低)介绍: 1. 依赖管理(所有版本锁定) 在配置文件pom.xml中先声明...

zhaohong_bo的专栏 1万+

排除maven依赖的<exclusions>和<optional>

设A依赖B,B依赖C 现在想排除A对C的间接依赖 1:使用&lt;optional&gt;true&lt;optional&gt;不让C传递    &lt;dependency&gt;      &lt;groupId&gt;C&lt;/groupId&gt;      &lt;artifactId&gt;C&lt;/artifactId&gt;      &lt;vers

u010287873的博客 4372

maven中央仓库国内镜像

 &lt;repositories&gt;         &lt;repository&gt;             &lt;id&gt;repo-mirror&lt;/id&gt;             &lt;url&gt;http://maven.net.cn/content/groups/public/&lt;/url&gt;         &lt;/repository...

yunzhongxia的专栏 599

Maven常用命令大全

Maven常用命令大全

qq_53632806的博客 1794
上一篇: Spring源码解读-第一部分核心部分
下一篇: spring源码解读-第二部分面想切面编程
掀衣怒码
博客等级 码龄6年 6粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值