无法创建自定义 BOM。项目构建失败并出现不可解析的导入 POM:找不到工件

我正在使用带有嵌入式maven(版本3.3.9)的eclipse mars,并且我面临着一个我无法理解的问题以解决它。我一直在尝试创建一个与 JMS 相关的“库”,其他一些项目可以在其依赖管理部分下的 pom 中使用该库(换句话说,遵循“BOM”模式)。但是,当将创建的 BOM 拉入应该使用它的相应项目的 dependencyManagement 部分时,指定的依赖项将被拉入,但项目构建本身 ( mvn clean install ) 失败,并显示下面的错误

我使用的结构如下:

一个“ jms-dependency-BOM ”项目(打包为 pom ),其中包含一个“ jms-dependency-parent ”项目(再次打包为 pom )作为子模块,该项目又继承自“ jms-dependency-BOM ”项目。此外,上述“ jms-dependency-parent ”项目还有一个“ amqdeps ”子模块(打包为 jar )。“ amqdeps ”子模块也继承自“ jms-dependency-parent ”项目。测试集成器”。

虽然它听起来确实像重复的,但我不确定它是不是。我的错误消息有点不同(没有提到错误的相对路径,例如在其他问题中)。现在我已经尝试了我能想到的一切,清除整个 .m2 /repository文件夹,尝试从cli使用的 Maven 版本(3.2)与 Eclipse 中的嵌入式版本略有不同。基本上我已经尝试了类似问题所建议的所有内容,都得到相同的结果。我想这与我构建项目的 BOM 层次结构的方式有关(也许是相对路径,尽管编译器没有抱怨它),但我对它的理解不够。

“ jms-依赖项-BOM ”pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.test</groupId>

  <artifactId>jms-dependencies-BOM</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>pom</packaging>


  <properties>

    <amqdeps.version>0.0.1-SNAPSHOT</amqdeps.version>

  </properties>


  <dependencyManagement>

    <dependencies>


        <dependency>

            <groupId>com.test</groupId>

            <artifactId>amqdeps</artifactId>

            <version>${amqdeps.version}</version>

        </dependency>


    </dependencies>  

  </dependencyManagement>


  <modules>

    <module>jms-dependencies-parent</module>

  </modules>

</project>


呼啦一阵风
浏览 110回答 1
1回答

九州编程

这个特定错误的原因似乎是版本字符串中的一个简单的拼写错误。您正在尝试导入<jms-dependencies-BOM.version>0.0.1.SNAPSHOT</jms-dependencies-BOM.version>而项目版本实际上是<version>0.0.1-SNAPSHOT</version>注意.vs 的-区别。也就是说,我确实相信您应该阅读更多有关项目继承与项目聚合的内容,并确保您了解reactor构建如何工作的细节。那么也许您可能需要重新考虑如何构建模块。我不是在评判你(也许你有充分的理由去做你所做的事情),但乍一看,你的多模块结构有点混乱,因此很脆弱。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java