Maven中的项目依赖

时间:2018-09-18 16:47:41

标签: java maven

我有两个不同的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>

谢谢!

1 个答案:

答案 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元素中定义。否则,您必须至少一次第一次手动地一个接一个地构建。