eclipse中maven依赖jar包变成了灰色怎么解决(本地仓库下载了)

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eclipse中maven依赖jar包变成了灰色怎么解决(本地仓库下载了)相关的知识,希望对你有一定的参考价值。

<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>3.0.1</version>
<scope>test</scope><!--会发现我们自己建的类无法使用,是因为设置了只在测试时使用,用于编译和运行测试代码。不会随项目发布,删除<scope>后所有类都可使用-->
删除 <scope>test</scope>后重新保存引包就好了参考技术Amaven 跟已有版本jar冲突,灰色无效jar,需要删除。
但由于maven默认了灰色。依赖已有jar的时候不会报错。追问

灰色jar无效,但是我需要用到这个jar,我也尝试过不同jar版本,但是还是这样,我应该怎么解决呢?

追答

将无效的jar也删除,只在引入的项目里面留了一个jar,问题就解决了。

追问

我用的junitjunit4.11test这个依赖,然后在Maven Dependencies里面看到的junit-4.11.jar是灰色,用不了。我删除了这个jar也就没有了,所以也不能用。

追答

删除了以后,项目不要在用这个4.11版本。同时看看哪些jar引用了,并且版本低,全部删除,更新

本回答被提问者采纳参考技术B项目右键>>Maven>>Update Project...

Maven依赖的是本地工程还是仓库jar包?

相信大家都碰见过maven配置的依赖或者是jar包或者是工程,在开发的过程当中,我们当然需要引入的是工程,这样查看maven依赖的文件的时候,就能直接查看到源码。

  一、本地工程依赖

  举个例子,其架构如下所示(以下均使用eclipse中m2eclipse插件进行演示)——

  

  此时,这里依赖的“dependency-to-hello”指代的是eclipse工作空间中的工程,这样,我们直接源码依赖的便是工作空间里的源码,这样很方便,也是我们需要的。会注意到,所依赖的“dependency-to-hello”工程,并没有显示其路径,也就是默认的工作空间的地址。

  那么,什么时候maven依赖的是仓库(本地仓库或远程仓库)中的jar包呢?

  二、(本地/远程)仓库jar包依赖

  很简单的方法之一,直接把“dependency-to-hello”工程关闭掉(close project),这样,就得到这样一个视图——

  

  会看到,此时maven依赖的正是对应“dependency-to-hello”工程的jar文件,并且,后面的路径显示是从maven仓库里面取的。

  三、工程依赖及仓库依赖的转换

  OK,我们现在还原之,我们将工程“dependency-to-hello”打开,会看到对应的maven依赖又变回原来的工程依赖了。

  需要说的是,当重新打开工程“dependency-to-hello”的时候,hello工程并没有出现红色感叹号,也就是无须做“update dependencies”等的更新maven依赖等操作。

  从这里,我们就能够看出来——m2eclipse首先查看是否能够从本地工程库中得到对应的maven依赖,如何存在,则将本地工程依赖进来;如何不存在,则从本地仓库/远程仓库中加载解析对应的jar包依赖。

  四、版本号变更

  在这儿,我假装模拟一下版本号变更,来看一下,会发生什么情况?

  现在“dependency-to-hello”工程是“快照”版本,当我们将之换为正式版本的时候,发现“hello”工程的maven依赖重新变回了jar依赖,如下——

  “dependency-to-hello”工程的maven坐标配置——

<groupId>com.juvenxu.mvnbook</groupId>
<artifactId>dependency-to-hello</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>

  “hello”工程的依赖配置——

<dependency>
    <groupId>com.juvenxu.mvnbook</groupId>
    <artifactId>dependency-to-hello</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

  其文件架构会显示如下——

  

  会发现其依赖是原有的仓库中的“快照”版本的“dependency-to-hello”的jar包。我们将仓库中的“快照”版本删除掉。刷新工程,发现hello工程上显示红色感叹号。如下——

  

  也就是说,其依赖是空依赖,本地及仓库中均不存在。

  当然这个“陷阱”是我自己加的,重新更改其版本号正确对应即可,就可以重新得到maven本地工程依赖了。

  五、总结

  在日常多人协作开发过程中,我们常常会遇到maven依赖版本变更带来的问题。当我们的工作空间也存在对应的依赖工程(对应上述例子中的“dependency-to-hello”工程)的时候,我们可以通过判断依赖的是本地工程还是仓库jar包的方式来判断是否出现了版本不一致的问题。从而,就能够解决maven依赖版本变更带来的问题。

原文地址:http://www.cnblogs.com/jinguangguo/p/maven.html

以上是关于eclipse中maven依赖jar包变成了灰色怎么解决(本地仓库下载了)的主要内容,如果未能解决你的问题,请参考以下文章

eclipse导出maven依赖的jar包

eclipse maven 导出项目依赖的jar包

eclipse maven 导出项目依赖的jar包

Maven依赖的是本地工程还是仓库jar包

eclipse怎么自动检测maven项目需要的jar包

eclipse maven 导出项目依赖的jar包

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值