我有两个不同的Maven项目-假设ProjectA和ProjectB,其中ProjectA使用ProjectB。
这些项目具有单独的pom.xml文件。我想在ProjectA的pom.xml中创建一个依赖项,并包含ProjectB。
但是,每次我尝试以clean install
的身份运行时,它总是失败并显示以下错误。
[WARNING] The POM for database-manager:database-manager:jar:0.0.1-SNAPSHOT is missing, no dependency information available
[ERROR] Failed to execute goal on project cumulus-certificate-generator-attestation: Could not resolve dependencies for project database-manager:database-manager:jar:0.0.1-SNAPSHOT: Could not find artifact cdatabase-manager:cdatabase-manager:jar:0.0.1-SNAPSHOT -> [Help 1]
其中database-manager = ProjectB。
我的依赖关系(在ProjectA pom.xml内部)如下:
<dependency>
<groupId>database-manager</groupId>
<artifactId>database-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
我想提及的是,我找到了一个解决方案,其中包括一个将包含这两个项目的“主” pom.xml,但这不是解决方案,因为我有多个pom.xml文件和多个项目。 如果已经回答了这个问题,您能为我指出解决方案,因为我找不到与此类似的东西。
<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>database-manager</groupId>
<artifactId>database-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>database-manager</name>
谢谢!
答案 0 :(得分:0)
首先:-请仔细阅读错误消息:
cumulus-database-manager:cumulus-database-manager:jar:0.0.1-SNAPSHOT
这是依赖关系,不会错过您的database-manager:database-manager
您的projectB database-manager
拥有它。
当缺少依赖项时-就像@Sridhar所说的,它不在<your home directory>/.m2/repository
文件夹中,并且不能从任何已定义的远程存储库下载。
如果cumulus-database-manager
是有效的依存关系
我假设您必须在Maven输出的开头看到一些消息,例如downlading artifact ... from ...<url>
,然后是cannot be downloaded
消息。
在这种情况下,您的locam .m2 /存储库中将有cumulus-database-manager/cumulus-database-manager
个目录,但是其中没有jar文件。
尝试从.m2 /存储库中删除cumulus-database-manager
目录,然后再次运行以强制Maven尝试再次下载它,并查看消息为什么未下载...
顺便说一句,如果您需要在一个项目依赖另一个项目的情况下同时构建两个项目,则必须拥有“主” pom,并且两个项目都在modules
元素中定义。否则,您必须至少一次第一次手动地一个接一个地构建。