如何防止Maven每次都下载工件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止Maven每次都下载工件?相关的知识,希望对你有一定的参考价值。

我正在使用Maven 3.1.1。在我的一个项目中,我引用了我的另一个项目......

    <dependencies>
            <dependency>
                    <groupId>org.mainco.subco</groupId>
                    <artifactId>myprojectA</artifactId>
                    <version>${project.version}</version>
            </dependency>

以上内容取决于我的其他几个项目。但是,当我运行“mvn clean install”时,Maven会尝试下载这些工件而不是仅仅使用我本地存储库中的内容。如果我的本地存储库中不存在Maven,我如何让它只下载?这是我所看到的输出......

davea$ mvn clean install
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building subco admin Module 57.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://download.java.net/maven/2/org/mainco/subco/myprojectA/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/subco/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/projectB/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/projectC/57.0.0-SNAPSHOT/maven-metadata.xml
[INFO]
答案

您可以通过在$USER_HOME/.m2/settings.xml文件中配置存储库来控制更新频率。具体来说,将updatePolicy更改为导致更新频率降低的值。

This Stackoverflow answer有更多细节。

另一答案

如果您使用离线标志,它将使用本地仓库中的库。

mvn clean install -o 
另一答案

如果要更新某些jar而不是本地安装的快照,则应使用the -nsu (--no-snapshot-updates) flag来阻止Maven从主存储库中获取最新的快照。使用-o将阻止它从远程存储库获取其他升级和(通常)必要的maven jar。

另一答案

根据我的经验,一旦maven“决定”它必须从特定服务器下载文件,这些都不起作用。

配置updatePolicy是另一个建议,但为了成功,您应该转到jar所在的本地存储库内的文件夹,并删除名为“_maven.repositories”的文件。删除以“.lastUpdated”结尾的文件。如果您使用的是eclipse插件,也可以使用“m2e-lastUpdated.properties”。

另一答案

您可以在中设置存储库

的settings.xml

你的maven安装文件。

Maven configuration网页上阅读更多相关信息。

以上是关于如何防止Maven每次都下载工件?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 GitLab CI 运行器启用 Maven 工件缓存?

如何使用 maven 从 ivy 存储库下载工件

如何从工件注册表(GCP)下载 jar?

如何使用命令行源安装 Maven 工件?

如何从 Maven 存储库中找到最新版本的工件

maven 会自动下载工件依赖项吗?