maven web项目添加pom依赖导入第三方一个自定义的jar包,编译可以通过。运行就报错了?

maven web项目添加pom依赖导入第三方一个自定义的jar包,编译可以通过。运行就报错了?,第1张

在使用maven管理项目的过程核数中,经常遇到在pom.xml中添加依赖,但是项目中始终无法引入对应的jar包,

这个时候我们可以进行如下 *** 作:(Eclipse)

1.选择项目->右击->Maven->Update Project,如此便可解决

2.实际使用中,发现eclipse与maven之间并非整合得天衣无缝,有时候eclipse中项目图标经常会莫名其妙的出现一些红叉,以下是一些个人经验:

3.尝试先到Dos命令行窗口,用mvn clean compile(或install)之类的命令试下能否正常编译

4.如果能正常编译,在回到eclipse中,项目右击->Maven-Update Project ,通常这样就能消除红叉

5.有时候b)步骤 *** 作完以后,仍然会有红色感叹号或厅森红叉,但是eclipse编译、调试都OK,这就要具体问题具体改伏首分析了,可以尝试把Problems面板调出来,逐个分析

6.以上3个步骤都尝试无效后,最后还可以尝试 Windows ->Preferences ->Validation ->Disable All 把所有验证都关掉

7.最后如果Jar架包还是有问题,那就一定是你的Maven本地仓库没有配置好。

maven3在解决依赖冲突采用绝老就近原则,在就近原则不能做出判断的情况下依据pom.xml的声明的先后顺序决定导入的jar。

jar包冲突多为传递性依赖的管理不当给项目带来的麻烦解决思路罗列如下:

1、首先查看当前项目的jar关系如果使用eclipse、idea等编辑器可打开pom.xml文档底部有Dependency Hierarchy可供查看jar的依赖情况。第二种使用maven插件的方式使用命令行:

mvn dependency:tree

结果中重要的是两个部分,首先是Used undeclared dependencies意值项目中使用到的,但是没有显示声明的依赖。这种依赖意味着潜在的风险。他是通过其他直接依赖导入的传递性依赖,当直接依赖升级时相关依赖的版本也会变化。可能导致当前项目报错,且不易察觉。另一个部分是Unused declared dependencies意指项目中未使用的,但显式声明的依赖。需要注意的是我们不应该直接删除了事而是应该仔细分析。因为这个命令行发现不了执行测试和运行时需要的依赖。

以上方法都可可完整的查看当前项目的jar情况,个人更喜欢使用命并罩升令行。

2、通过以上方法我们可以看到项目中引用jar版本号;接下来就是如何排除掉我们不想要版本的jar语法如下:

<dependency>

<groupId>.....</grooupId>

<artifactId>....</artifactId>

<version>...</version>

<exclusions>

<exclusion>

<groupId>.....</groupId>

<artifactId>.....</artifactId>

</exclusion>

</exclesions>

<dependency>

<!--exclusions可包含一个或多个exclusion元素-->

3、一下规避jar冲突的思路,如果项目中有直接用到某个jar而这个jar已通过传递依赖的方式引入到闷郑maven项目里了。最好排除这个传递依赖在pom里面明确的声明这个依赖。归类依赖,不断的优化依赖如,去除多余的依赖。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11978767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存