关于Maven强制更新的介绍
Maven强制更新是在更新间隔期结束时从远程仓库获取更新。默认情况下,Maven强制更新的时间间隔是每天,我们可以通过配置pom.xml文件中的更新策略来配置更新时间间隔。Maven没有获取依赖性更新或重新尝试从缓存库获取依赖性。我们可以强迫Maven在构建项目时从仓库获取依赖性。
什么是Maven强制更新?
我们可以通过使用mvn clean install命令中的-U选项来强制更新maven。其中,-U意味着强制更新快照的依赖性。如果之前没有更新,那么发布的依赖关系就会被更新。在开发时,maven在下载快照时正在进行安装,它将释放依赖关系。不下载依赖项的原因是网络的延迟问题。Maven从maven nexus等资源库下载依赖项,也可以说是中心库。我们的应用程序无法加载,因为依赖关系已经正常更新。
主要启示
- Maven将所有项目的依赖项保存在m2文件夹中。此外,Maven还在下载资源库文件夹中的依赖项。
- 基本上,maven是根据pom.xml的配置工作的,在执行pom.xml文件时,从中央仓库下载依赖项。
如何使用强制选项更新Maven?
在构建maven项目时,我们使用-U的快照标志,强迫maven从指定的远程仓库下载依赖项。-U更新快照的标志会强制你检查远程仓库的更新快照和缺失的版本。
下面的例子说明了我们如何用强制选项更新maven,如下所示。我们使用带有-U选项的mvn clean install命令进行强制更新。如果我们没有在mvn clean install命令中使用任何选项,那么它将构建文件夹中存在的项目,而不会更新或下载任何依赖。为了下载和更新新的依赖,我们需要在mvn clean install命令中提供选项-U,如下所示。在下面的例子中,我们在mvn clean命令中使用了-U选项,同时我们正在安装更新的依赖项,如下所示。
在下面的例子中,我们可以看到我们正在使用maven_profile项目来定义maven强制更新。
mvn clean install –U


如果我们的本地仓库没有使用适当的快照发布罐,那么我们需要使用以下命令清除仓库。在下面的例子中,我们正在清除本地仓库,如下图所示。在下面的例子中,我们可以看到我们已经定义了本地仓库的依赖关系,以便通过maven更新。
mvn dependency:purge-local-repository


通过本地仓库更新依赖关系后,在这一步我们使用-U选项进行清理和安装,如下所示。在下面的例子中,我们通过定义本地仓库使用清洁安装命令,如下所示。定义清洁安装命令时,它将首先从本地仓库下载所需的依赖,然后使用清洁安装命令进行安装,如下所示。
mvn dependency:purge-local-repository clean install –U


Maven强制更新项目的命令行
Maven命令行包含-U或-update选项,通过使用所需的依赖关系更新快照。下面的步骤显示了通过使用项目命令行进行的Maven强制更新,如下所示。
- 第一步,我们通过使用清洁安装命令,用-U选项更新项目,如下所示。
mvn clean install -U


- 第二步,我们使用-update-snapshots选项来更新快照,如下所示。
mvn clean install --update-snapshots


我们还可以通过更新本地仓库选项来更新插件目标,如下所示。
mvn dependency:purge-local-repository


- 在清理完本地仓库后,我们正在运行下面的命令来更新快照并释放依赖关系,如下所示。
mvn dependency:purge-local-repository clean install


- 在下面的例子中,更新快照后,我们正在更新解决目标的依赖关系,如下所示。
mvn dependency:resolve


- 在下面的例子中,我们通过使用mvn命令来更新单个依赖关系,如下所示。
mvn dependency:get …

Maven强制更新Eclipse
我们可以轻松地在eclipse中强制更新maven的依赖。下面的步骤显示了我们如何使用eclipse来更新这些依赖。
- 第一步,我们用eclipse打开maven项目,将项目名称定为maven_force_update。

- 打开项目后,我们需要右键点击项目,右键点击项目后需要选择maven选项,然后需要用eclipse选择更新项目选项,如下所示。

- 点击更新项目后,会出现以下窗口,我们需要选择一个我们要更新的项目,如下所示。

- 点击更新项目后,我们可以看到我们的项目将被更新,所需的依赖项如下。

Maven强制更新不起作用
在某些情况下,在导入项目时,项目会包含用于编译代码的编译器设置,如果编译器设置没有正确配置,我们就会遇到这种问题。下面的信息显示了使用java内部错误的编译失败,如下所示。

为了解决这个问题,我们需要用笔写项目,并且需要检查我们项目的设置,如下所示。

我们还可以改变pom.xml文件的设置,以解决maven更新失效的问题,如下所示。
代码。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven_force_update</artifactId>
<version> 2.3.0 </version>
<configuration>
<source> 1.7 </source>
<target> 1.7 </target>
<encoding> UTF-8 </encoding>
</configuration>
</plugin>

常见问题
下面是提到的常见问题。
Q1.maven项目中的maven强制更新有什么用?
**答:Maven强制更新用于强制更新maven的项目依赖项。**Maven强制更新用于强制更新运行项目所需的maven依赖项。
Q2.哪条命令用于强制更新maven的依赖项?
回答:我们使用mvn clean install。 我们使用带有-U或-update选项的mvn clean install命令来强制更新项目所需的依赖性。
Q3.maven中的依赖性解析目标在强制更新依赖性方面有什么作用?
回答。 maven中的Resolve goal用于更新maven依赖项,并在不使用安装命令的情况下更新快照。
结论
maven强制更新的时间间隔默认设置为每天,我们可以通过配置pom.xml文件中的更新策略来配置更新时间间隔。我们可以通过使用mvn clean install命令,在maven中使用-U选项强制更新。其中-U表示强制更新快照的依赖关系。