Maven 仅在 SNAPSHOT 存储库中搜索工件

Maven searching artifacts only in SNAPSHOT repository

我有一个 Maven 项目,其中包含以下 dependencyManagement 部分:

<dependencyManagement>
        <dependency>
            <groupId>myGroup</groupId>
            <artifactId>myBom</artifactId>
            <version>1.0.0</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
</dependencyManagement>

在我的 Maven settings.xml 文件中,我有以下 repositories 定义:

<repositories>
        <repository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <name>public</name>
            <url><pathToArtifactory>/public</url>
        </repository>
        <repository>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>snapshots</id>
            <name>public-snapshots</name>
            <url><pathToArtifactory>/public-snapshots</url>
        </repository>
</repositories>

但是,我不断收到以下错误消息:

Project Build error: Non-resolvable import POM: Could not find artifact myGroup:myBom:pom:1.0.0 in snapshots (<pathToArtifactory>/public-snapshots)

在 运行 mvn dependency:list-repositories 之后,我可以确认存储库已正确定义,并且没有被覆盖。

为什么 Maven 在我的 SNAPSHOT 定义的存储库中寻找 1.0.0 版本?

Maven 在您的快照存储库中搜索发布。
要禁用该行为,请将以下内容添加到您的 settings.xml 中的快照存储库并查看它是否有效:

<releases>
    <enabled>false</enabled>
</releases>

source

此外,将 Artifactory 添加为 mirror 而不是存储库应该会更好。虽然我不知道你如何以这种方式添加快照。

好的,找到了!! 似乎从 Maven 3.5.0 开始,在 settings.xml 中有一个名为 central 的服务器 ID 导致官方 Maven 中央存储库出现问题,该存储库也称为 central.