强制Maven更新

我在其他计算机上导入了我的工作项目,因此开始下载依赖关系。

显然在此期间,我的互联网连接崩溃。 现在我得到:

为漫画构build错误; org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目上执行目标comicsTest:无法parsing项目的依赖项comicsTest:comicsTest:war:0.0.1-SNAPSHOT:以下工件无法parsing:org.springframework:spring-上下文:jar:3.0.5.RELEASE,org.hibernate:hibernate-entitymanager:jar:3.6.0.Final,org.hibernate:hibernate-core:jar:3.6.0.Final,org.hibernate:hibernate-commons-注释:jar:3.2.0.Final,org.aspectj:aspectjweaver:jar:1.6.8,commons-lang:commons-lang:jar:2.5,

mysql:mysql-connector-java:jar:5.1.13:无法传递org.springframework:spring-context:jar:3.0.5.RELEASE从http://repo1.maven.org/maven2caching在本地仓库,直到中央的更新时间间隔过去或更新被强制为止,分辨率才会被重新尝试。

原始错误:无法传递工件org.springframework:spring-context:jar:3.0.5.RELEASE from central( http://repo1.maven.org/maven2 ):60000之后未收到响应

我不知道如何强制maven更新?

mvn clean install -U 

-U表示强制更新快照依赖项。 发布依赖不能以这种方式更新。

-U似乎强制更新所有的依赖关系。 如果你想更新一个单独的依赖关系而不干净或-U,你可以从你的本地仓库中删除它,然后构build。 下面的例子,如果更新slf4j-api 1.7.1-SNAPSHOT:

 rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT mvn compile 

您可以从Eclipse IDE有效地执行操作。 当然,如果你正在使用它。

 Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases 

这里的所有答案都不适合我。 我用锤子的方法:

 find ~/.m2/ -name "*.lastUpdated" | xargs rm 

解决了这个问题:-)

如果您的本地存储库以快照方式( -U--update-snapshots仅更新快照)而不是用于发布jar包,则可以使用以下方法清除本地存储库:

  mvn dependency:purge-local-repository 

你可能然后想要清理并再次安装:

  mvn dependency:purge-local-repository clean install 

更多信息可在https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html

如果您不确定本地存储库中的内容,build议使用以下选项启动构build:

 -Dmaven.repo.local=localrepo 

这样你就可以确保build立在无尘室的环境中。

在我的情况下,首先我做了
mvn clean install -U
仍然是显示同样的错误,然后我closures了项目,并安吉重新打开它,最后工作。

以防万一有人想只更新项目的快照依赖关系,不想安装工件:

 mvn dependency:resolve -U 

不要忘记在您的IDE中重新导入依赖项。 在IDEA中,您需要右键单击pom文件并selectMaven – > Reimport

我在其他情况下有错误。 所以,我的解决scheme可能对那些st upon这个问题的人有用:

问题:我已经将本地存储库复制到另一台没有连接到特殊存储库的计算机上。 所以maven试图检查对无效的存储库的工件。

我的解决scheme:删除_maven.repositories文件。

这是Maven最讨厌的事情之一。 对我来说,会发生以下情况:如果我添加一个依赖项来请求更多的依赖关系,但是连接速度较慢,则会在下载和超时时停止接收。 虽然超时所有依赖关系还没有被提取的地方被标记为.m2caching中的占位符,Maven将不会(永远不会)提取它,除非我通过移除caching(如其他声明)从caching中移除占位符条目。

所以就我所见,Maven或更精确的Eclipse Maven插件有一个关于这个的错误。 有人应该报告这一点。

请检查/ conf目录下的settings.xml文件。

我有与android-maps-utils依赖关系相同的错误。 在依赖节使用aartypes的包解决了我的问题。 默认的types是jar,所以可以检查是否下载了版本库中的依赖关系types。

为了从Eclipse中解决这个问题:

1)在Maven pom.xml中添加下面的依赖项并保存pom.xml文件。

 <!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream --> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.3.1</version> </dependency> 

2)转到项目>> Maven >>更新项目

select该项目,然后单击确定。

3)可选步骤,如果直到步骤2没有解决,则在执行步骤1之后,执行以下步骤

转到项目>> Maven >>更新项目>>检查checkbox'强制更新快照/释放'

select该项目,然后单击确定。

需要补充说明的是,运行mvn 与-U 使用-U的主要区别在于-U将用远程SNAPSHOTjar子覆盖您的本地SNAPSHOTjar子。

本地SNAPSHOT从当地mvn install创build的jar,如果你有你的proj的其他模块生成jar子。

我有一个不同的原因这个问题。 我去了maven仓库https://mvnrepository.com寻找最新版本的Spring核心,当时是5.0.0.M3 /存储库告诉我这个项目为我的pom.xml:

 <!-- https://mvnrepository.com/artifact/org.springframework/spring-core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.0.0.M3</version> </dependency> 

天真愚蠢,我是,我认为该评论告诉我,该jar位于默认存储库。

然而,经过很多头撞之后,我在xml下面看到一个注释:“注意:这个工件位于Alfresco公共仓库( https://artifacts.alfresco.com/nexus/content/repositories/public/ ) “

所以在XML中的评论是完全误导的。 该jar位于另一个档案中,这就是为什么Maven找不到它!

mvn clean install -U不起作用。 然而, mvn -U clean然后是mvn clean install

我们可以用下面的命令强制获得发行版和快照库的最新更新:

 mvn --update-snapshots clean install 

我有同样的错误,并运行mvn install -U ,然后运行mvn install为我工作。