我正在使用带有嵌入式maven (版本3.3.9)的eclipse,为了解决这个问题,我遇到了一个我无法理解的问题。我一直试图创建一个与JMS相关的“库”,其他一些项目可以在其dependencyManagement部分的pom中使用这个库(换句话说,遵循"BOM“模式)。但是,当在应该使用它的相应项目的dependencyManagement部分中提取所创建的BOM时,指定的依赖项会被拉进来,但是项目构建本身(mvn )失败,错误会进一步显示。
我使用的结构如下:
一个"jms-dependencies-BOM“项目(打包为pom),它包括一个"jms-dependencies-parent”项目(也被打包为pom)作为子模块,该项目又继承自"jms-dependencies-BOM“项目。此外,还有上述"jms-dependencies-parent“项目的"amqdeps”子模块(打包为jar)。“"jms-dependencies-parent”amqdeps“子模块也继承自项目。在依赖项部分导入"jms-dependencies-BOM“pom并使用"amqdeps”依赖项的对应项目是"TestIntegrator".。
虽然它听起来像一个复制品,但我不确定它是。我的错误消息有点不同(没有提到不正确的相对路径,例如在其他问题中),我已经尝试了我能想到的一切,清除了整个.m2/存储库文件夹,尝试使用与eclipse中嵌入的TestIntegrator版本(3.2)稍微不同的maven版本从cli构建.Now项目。基本上,我已经尝试了所有类似的问题所提出的一切,都是为了同样的结果。我认为这与我构建项目BOM层次结构的方式有关(可能是相对路径,尽管编译器没有抱怨它),但我对它的理解还不够。
"jms-dependencies-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>"jms-dependencies-parent“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>
<parent>
<groupId>com.test</groupId>
<artifactId>jms-dependencies-BOM</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<groupId>com.test</groupId>
<artifactId>jms-dependencies-parent</artifactId>
<packaging>pom</packaging>
<properties>
<activemq.version>5.13.1</activemq.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-openwire-legacy</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-camel</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-jaas</artifactId>
<version>${activemq.version}</version>
</dependency>
<--MORE DEPENDENCIES TRUNCATED FOR CLARITY-->
</dependencies>
</dependencyManagement>
<modules>
<module>amqdeps</module>
</modules>
</project>"amqdeps“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>
<parent>
<groupId>com.test</groupId>
<artifactId>jms-dependencies-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>amqdeps</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-openwire-legacy</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-camel</artifactId>
</dependency>
<--MORE DEPENDENCIES TRUNCATED FOR CLARITY-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</plugins>
</build>
</project>最后是"TestIntegrator“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>TestIntegrator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<spring.framework.version>5.1.4.RELEASE</spring.framework.version>
<jms-dependencies-BOM.version>0.0.1.SNAPSHOT</jms-dependencies-BOM.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring.framework.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.test</groupId>
<artifactId>jms-dependencies-BOM</artifactId>
<version>${jms-dependencies-BOM.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
</dependency>
<dependency>
<groupId>com.test</groupId>
<artifactId>amqdeps</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</plugins>
</build>
</project>当我在父项目中执行mvn干净安装时(即,"jms-dependencies-BOM")所有内容都构建好了,我可以看到对应的"jms-dependencies-BOM","jms-dependencies-parent“和" amqdeps ”(以及amqdeps项目的jar )都安装在com/test/...目录下相应的.m2/存储库文件夹中。此外,我可以在TestIntegrator项目中看到amqdeps项目中列出的依赖项,没有显示任何错误。但是,每次我尝试从TestIntegrator项目中的IDE执行mvn干净安装时,都会失败,出现以下错误:
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Non-resolvable import POM: Could not find artifact com.test:jms-dependencies-BOM:pom:0.0.1.SNAPSHOT @ line 43, column 16
[ERROR] 'dependencies.dependency.version' for com.test:amqdeps:jar is missing. @ line 104, column 14
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project com.test:IgniteIntegrator:0.0.1-SNAPSHOT (C:\Users\matrix\eclipse-mars\workspace\TestIntegrator\pom.xml) has 2 errors
[ERROR] Non-resolvable import POM: Could not find artifact com.test:jms-dependencies-BOM:pom:0.0.1.SNAPSHOT @ line 43, column 16 -> [Help 2]
[ERROR] 'dependencies.dependency.version' for com.test:amqdeps:jar is missing. @ line 104, column 14
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException有人能帮帮我吗?
发布于 2019-09-13 09:05:36
https://stackoverflow.com/questions/57919835
复制相似问题