Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何强制maven更新?_Maven - Fatal编程技术网

如何强制maven更新?

如何强制maven更新?,maven,Maven,我在另一台计算机上导入了我已经在工作的项目,它开始下载依赖项 显然我的互联网连接崩溃了,现在我得到了以下信息: >Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:c

我在另一台计算机上导入了我已经在工作的项目,它开始下载依赖项

显然我的互联网连接崩溃了,现在我得到了以下信息:

    >Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
    Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
    The following artifacts could not be resolved:
    org.springframework:spring-context: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-annotations: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: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.

    >Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000
 mvn dependency:purge-local-repository
如何强制maven更新

mvn clean install -U
-U
表示强制更新快照依赖项


如果以前从未成功下载过版本依赖项,则将以这种方式更新它们。ref:

-U
似乎强制更新所有快照依赖项

如果您想在不使用clean或
-U
的情况下更新单个依赖项,您可以将其从本地回购中删除,然后构建

以下示例用于更新
slf4j api 1.7.1-SNAPSHOT

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

如果您不确定本地存储库中有什么,我建议使用以下选项启动构建:

-Dmaven.repo.local=localrepo

这样,您将确保在洁净室环境中进行构建。

我在其他上下文中遇到了错误。 因此,我的解决方案可能对其他在这个问题上左右为难的人有用:

问题是: 我已将本地存储库复制到另一台计算机,该计算机与特殊存储库没有连接。 因此maven尝试根据无效的存储库检查工件

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

您可以通过
EclipseIDE
有效地执行此操作。当然,如果你正在使用它

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

就我而言,我首先做的是:

mvn clean install -U

但它仍然显示相同的错误,然后我关闭了项目并再次打开它。终于成功了。

mvn清洁安装-U不起作用。然而,
mvn-U clean
之后是
mvn clean install

这里所有的答案对我都不适用。我使用了锤击法:

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

这解决了问题:-)

这是Maven最恼人的事情之一。对我来说,会发生以下情况:如果我添加了一个依赖项,请求更多的依赖项和越来越多的依赖项,但连接速度很慢,那么在下载和超时时,它可能会停止。在超时时,所有尚未获取的依赖项都会在.m2缓存中用占位符标记,Maven不会(永远)获取它,除非我通过移除占位符从缓存中移除占位符条目(如其他声明所述)


所以在我看来,Maven或者更确切地说EclipseMaven插件在这方面有一个bug。应该有人报告此情况。

我们可以使用以下命令强制获取最新版本和快照存储库更新:

mvn --update-snapshots clean install

如果您的本地存储库在某种程度上被释放jar而不是快照搞得一团糟(
-U
-updatesnapshots
仅更新快照),您可以使用以下方法清除本地repo:

    >Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
    Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
    The following artifacts could not be resolved:
    org.springframework:spring-context: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-annotations: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: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.

    >Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000
 mvn dependency:purge-local-repository
然后,您可能需要再次清理和安装:

 mvn dependency:purge-local-repository clean install

更多信息请访问

我遇到了相同的错误,运行
mvn安装-U
然后运行
mvn安装
对我来说很有效。

我遇到了与android maps utils依赖项相同的错误。在依赖项部分使用aar类型包解决了我的问题。
默认情况下,类型是jar,所以可以检查存储库中下载的依赖项的类型

我有这个问题是因为另一个原因。我去maven存储库寻找最新版本的spring core,当时是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>

org.springframework
)"


因此XML中的注释完全是误导性的。jar位于另一个存档中,这就是Maven找不到它的原因!

需要补充的是,使用-U运行
mvn
和不使用-U运行的主要区别在于
-U
将使用远程SNA覆盖本地快照jarPSHOT罐子


本地快照JAR是从本地
mvn安装创建的,如果您的项目中有其他模块生成JAR。

要从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>

com.thoughtworks.xstream
xstream
1.3.1
2) 转到project>>Maven>>更新项目

选择项目并单击“确定”

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

转到project>>Maven>>Update project>>选中复选框“强制更新快照/发布”


选择项目并单击“确定”。

以防有人只想更新项目的快照依赖项而不想安装工件:

mvn dependency:resolve -U

别忘了在IDE中重新导入依赖项。在IDEA中,您需要右键单击pom文件并选择Maven->reimport

您需要检查
/conf
目录下的settings.xml文件。

我最近遇到了这个问题,运行以下程序修复了所有问题

mvn -fae install

-U用于强制更新maven Repo。 使用


如果您正在使用eclipse IDE,则:

  • 选择项目
  • 按alt+F5,将弹出更新Maven项目的窗口

  • 选中-强制更新快照/版本,然后单击“确定”

如果使用Intellij IDE

  • 转到设置/Maven
  • 选中“始终更新快照”

我在这里尝试了所有答案,但似乎没有任何效果。首先重新启动我的计算机,然后运行
mvn clean install-U
。这解决了我的问题。

maven所做的是,它将所有项目的依赖项下载到本地repo(.m2文件夹)中。由于internet导致您的本地repo出现问题,您的project正面临问题。我不确定这是否一定会对您有所帮助,但您可以尝试删除.m2文件夹中repository文件夹中的所有文件。由于本地repo中没有任何内容,maven将被迫再次下载依赖项,因此正在搜索更新。
通常,.m2文件夹位于c:users:[用户名]:.m2

我使用了IntelliJ IDE,我遇到了一个类似的问题,为了解决这个问题,我单击了I
find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;