禁用 Maven 3.9.X 远程存储库过滤

McF*_*iez 8 java maven-3 maven

在 3.9.0 中,Maven 引入了远程存储库过滤

\n

从理论上讲,这听起来很棒:

\n
\n

想象一下,您可以指示 Maven 哪个存储库可以包含什么工件?Maven 可以通过受控方式直接到达所需的远程存储库,而不是在远程存储库中以 \xe2\x80\x9cordered 循环\xe2\x80\x9d 搜索工件。

\n
\n

直到你看到细则:

\n
\n

Maven Central (MC) 存储库在这方面很特别,因为 Maven 将始终尝试从这里获取东西,因为您的构建、插件、插件依赖项、扩展等通常来自这里。虽然您可以过滤 MC,但过滤 MC 通常是一个坏主意(过滤,如 \xe2\x80\x9c 限制来自它的内容 \xe2\x80\x9d)。另一方面,MC 本身提供了帮助来防止请求泄漏给它(请参阅 \xe2\x80\x9cprefixes\xe2\x80\x9d 过滤器)。

\n
\n
\n

因此,最常见的是限制 \xe2\x80\x9c 可以从 MC 获取 \xe2\x80\x9d 的内容是一个坏主意,它可以完成,但要以非常非常谨慎的方式进行,否则您的构建将面临风险。RRF 不区分工件的 \xe2\x80\x9ccontext\xe2\x80\x9d ,它只是通过(工件,remoteRepository)对过滤掉它们,并且通过限制 MC,您可以轻松进入破坏构建的状态(因为插件取决于过滤的工件)。

\n
\n

我的个人存储库中有一堆罐子。即使它们在我的 ~/.m2 中被明确标记为这样:

\n
#NOTE: This is a Maven Resolver internal implementation file, its format can be \nchanged without prior notice.\n#Fri May 12 21:15:32 PDT 2023\nmy-commons-2.1.0.pom>personal=\nmy-commons-2.1.0.jar>personal=\n
Run Code Online (Sandbox Code Playgroud)\n

一旦我更新到 3.9.X,maven 就会不断尝试从中心获取它:

\n
[INFO] Artifact com.personal.space:my-commons:pom:2.1.0 is \npresent in the local repository, but cached from a remote repository ID that is \nunavailable in current build context, verifying that is downloadable from [central. \n(https://repo.maven.apache.org/maven2, default, releases)]\n
Run Code Online (Sandbox Code Playgroud)\n

我到底如何为我自己的个人存储库关闭此功能?他们的文档中谈到了过滤以及其他内容,但我已经摆弄过,但没有任何效果。

\n