maven 从内部 maven 存储库导入 pom (BOM) 自己的项目

maven import pom (BOM) own project from internal maven repository

我们正在尝试将 Maven 依赖项分组到一个单独的 Maven POM 类型项目中。

我们希望将其用作依赖项节点内的 POM 类型依赖项以及 de dependencyManagement 内的 BOM(物料清单)。

我们公司内部有一个2仓库。 (Apache 存档 - 2.2.0)。 其中一份用于快照,一份用于发布。

当我尝试使用快照版本时,一切正常,但是当我想使用发布版本时,我不断收到错误,因为它一直在中央 Maven 存储库(我们的 pom 所在的位置)中寻找依赖项未找到)

对我来说,似乎只在快照存储库中搜索 POM 依赖项。

<properties>
    ...
    <dependency.bla-slf4j-logback-BOM.version>1.0.1</dependency.bla-slf4j-logback-BOM.version>
    ...
</properties>
<dependencies>
    ...
    <dependency>
        <groupId>my.groupid</groupId>
        <artifactId>bla-slf4j-logback-BOM</artifactId>
        <version>${dependency.bla-slf4j-logback-BOM.version}</version>
        <type>pom</type>
    </dependency>
    ...
</dependencies>
<dependencyManagement>
    <dependencies>
        ...
        <dependency>
            <groupId>my.groupid</groupId>
            <artifactId>bla-slf4j-logback-BOM</artifactId>
            <version>${dependency.bla-slf4j-logback-BOM.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        ...
    </dependencies>
</dependencyManagement>

错误信息:

[ERROR]     Non-resolvable import POM: Failure to find my.groupid:bla-slf4j-logback-BOM:pom:1.0.1 in http://repo.maven.apache.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 @ line 234, column 22 -> [Help 2]

使用的命令:

mvn dependency:tree

我检查了我们的档案,工件出现在预期的位置。 我也查看了本地的maven目录,pom依赖下载正确

知道为什么这对我们的 POM 项目 (1.0.1) 的发布版本不起作用,但对我们的 POM 项目的快照版本 (1.0.1-SNAPSHOT) 有效。

解决方案是将以下 xml 块添加到 Maven settings.xml 文件中。

<mirrors>
    <mirror>
        <id>ourcentral</id> 
        <name>our central</name>
        <url>http://mavenrepourl.goes.here</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

这会导致它检查我们的内部 maven 存储库作为中央 maven 存储库。 (我们的maven仓库有默认的中央仓库作为远程仓库)

特别鸣谢:Hisham kh