当前位置: 首页 > 知识库问答 >
问题:

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

柴宏阔
2023-03-14

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

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

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

当我尝试使用snapshot版本时,一切正常,但当我想使用发布的版本时,我不断收到一个错误,因为它一直在中央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版本:ApacheMaven 3.2.2
  • archiva版本:Apache archiva-2.2.0

我检查了我们的档案,文物在预期的位置。我还检查了本地maven目录,正确下载了pom依赖项。

你知道为什么这不适用于POM项目的发布版本(1.0.1),但适用于POM项目的快照版本(1.0.1-Snapshot)吗。

共有1个答案

童宏富
2023-03-14

解决方案是将以下xml块添加到maven设置中。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

 类似资料:
  • 我在Maven有一个内部的Nexus存储库,其中部署了一些插件。在nexus存储库中存在一些不存在的依赖jar文件。是否可以将maven配置为在内部存储库中搜索依赖jar文件,如果在maven中心存储库中不存在搜索。 使现代化 做出了与JimHawkins回答中类似的配置。但我仍然认为它只在nexus内部存储库中查找依赖项。以下是它打印的一些debus Messes:

  • 我试图在OSGI容器上部署我的java模块。通过karaf“feature”,我能够生成feature.xml,它列出了所有需要的包。 正如我们所知,每个包都是一个依赖项。现在我们确实有一些依赖项可以由maven从其存储库中下载。

  • 问题内容: 我有兴趣为我的组织维护一个Maven 2存储库。有哪些指针和陷阱会有所帮助。 设置代码发布时从用户的工件下载或发布到存储库的标准时,用户应遵循哪些准则?您对这类事情有什么样的治理/规则?您在开发人员指南/文档中包括了哪些内容? 更新 :我们已经站起Nexus并对此感到非常满意-遵循Sal的大多数指南,并且没有遇到任何麻烦。此外,我们还限制了通过Hudson CI服务器的部署访问权限和快

  • 我刚刚使用Maven,我需要从一个Ant项目上传一些库。为了开发这个任务,我有一个文件夹,其中包含许多“pom.xml”文件,这些文件引用了我希望使用Maven在Eclipse中添加到我的项目中的jar,还有另一个xml文件,即Ant项目本身。 欢迎所有想法。谢谢

  • 我得到了下面的错误,而导入maven项目从STS的git仓库。 “导入Maven项目”期间发生内部错误。没有枚举常量组织。日食m2e。果心生命周期图。模型插件执行操作。项目

  • 我有一个POM,它在其依赖管理部分中描述了一组依赖项。这组依赖项定义了当我部署应用程序时将提供哪些依赖项,因此我想坚持这个列表,而不是让我的项目重新定义它们。 有没有一种方法可以让我从这个POM继承托管依赖项,而不让它成为我项目的父POM? 我想避免在我的项目POM中指定版本等。