我正在eclipse中设置一个项目。此项目通过命令行成功构建(mvn
,mvn package
,mvn compile
等所有mvn clean install
命令都可以正常工作。在STS或Eclipse上设置此项目时。我看到有些依赖项没有被下载,即使它们存在于pom.xml
中。但是,在maven存储库中搜索它们并将jar下载到我的本地计算机然后将它们添加到构建路径使它可以在Eclipse上运行。
我们需要做些什么才能确保eclipse从存储库中下载所有依赖项。
我的POM :
<dependency>
<groupId>org.apache.bookkeeper</groupId>
<artifactId>bookkeeper-server-compat410</artifactId>
<version>4.1.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.apache.bookkeeper</groupId>
<artifactId>bookkeeper-server</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.bookkeeper</groupId>
<artifactId>bookkeeper-server-compat420</artifactId>
<version>4.2.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.apache.bookkeeper</groupId>
<artifactId>bookkeeper-server</artifactId>
</exclusion>
</exclusions>
</dependency>
这些工件都没有为eclipse下载,并且发现http://mvnrepository.com/artifact/org.apache.bookkeeper/bookkeeper-server-compat410/4.1.0和http://mvnrepository.com/artifact/org.apache.bookkeeper/bookkeeper-server-compat420/4.2.0的jar文件不存在于MavenDependencies的文件夹中,随后在Eclipse中出错。
但是,手动将它们添加到构建路径会创建一个新文件夹(参考库)并解决Eclipse错误。为什么Eclipse不能从maven存储库中自行下载和导入这些依赖项?这是Eclipse中的错误还是我身边的一些问题。请帮忙。
答案 0 :(得分:20)
我遇到了同样的问题,这就是我解决的问题。 :
答案 1 :(得分:5)
解决方案1:
设置正确的代理:
<proxy>
<id>optional</id>
<active>false</active>
<protocol>http</protocol>
<username></username>
<password></password>
<host>172.27.171.91</host>
<port>8080</port>
</proxy>
解决方案2:
删除
lastupdated extension files from folder
并尝试更新maven。
[此解决方案大部分时间都有效]
答案 2 :(得分:4)
有时下载依赖项时出错 - 例如。下载了一些文件,但本地Maven存储库中缺少实际的JAR。
在这种情况下,我必须删除本地maven存储库中有问题的依赖项的整个文件夹。只有这样才能使Maven更新工作(右键单击项目并选择Project > Maven > Update Project...
。)
答案 3 :(得分:1)
在我的情况下,我取消选中Build automatically
。再次检查它开始下载罐子。
答案 4 :(得分:0)
我遇到了类似的问题。我尝试删除.m2中的文件夹并再次构建maven项目
我可以下载所有依赖项,除了我们自己创建并在Nexus上发布的一个依赖项。
然后我改变了java从JRE指向JDK解决了我的问题
答案 5 :(得分:0)
以下对我有用。
只需右键点击Project -> Maven -> Update Project...
,就会显示here。
答案 6 :(得分:0)
我遇到了类似的问题,请按照以下步骤进行操作以解决问题。
选择项目
右键单击-> Maven
更新项目。
它将下载所有丢失的Jars。
答案 7 :(得分:0)
我最近遇到了同样的问题。
首先,您必须在Maven存储库的settings.xml中配置代理设置。
如果您使用的是eclipse / STS,请进行以下验证。
Window -> Preferences -> Maven -> User Settings -> update user settings by pointing your settings.xml
现在设置为更新Maven项目。它为我工作。
答案 8 :(得分:0)
对我来说,我将包装从pom更改为jar,然后下载了依赖项。
so I changed from <packaging>pom</packaging> to <packaging>jar</packaging>
答案 9 :(得分:0)
确保您定义的依赖关系尽可能接近需要它的项目树的叶子。 否则,Maven可能会忽略它。
例如,如果您有一个引用项目A和B的父项目,并且依赖项是相对于项目A的,则Maven可能会忽略在父项的pom.xml中定义依赖项。因此,在项目A的pom.xml中定义它。
Parent Project's pom.xml
Sub-project A's pom.xml <<< define the dependency where it is needed
Sub-project B's pom.xml