MavenError:无法在项目上执行目标:无法解析 Maven 多模块项目中的依赖项

新手上路,请多包涵

我正在尝试创建一个 Maven 多模块项目。该项目已成功创建,但是当我尝试将一个模块用作另一个模块的依赖项时,它会引发异常。当我使用 eclipse 创建模块时,我选择了 packaging as a jar,但是当创建模块时,子 pom.xml 中没有提到包装标签,我手动插入包装标签作为 jar。以下是我的父母 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>com.netsol</groupId>
<artifactId>empirecl</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
-------------------------
<modules>
    <module>empirecl-web</module>
    <module>empirecl-dao</module>
    <module>empirecl-service</module>
    <module>empirecl-api</module>
</modules>

Dao 子模块:

 <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.netsol</groupId>
    <artifactId>empirecl</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>
<artifactId>empirecl-dao</artifactId>
<packaging>jar</packaging>
<name>empirecl-dao</name>
------------------------

服务子模块:

 <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.netsol</groupId>
    <artifactId>empirecl</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>
<artifactId>empirecl-service</artifactId>
<packaging>jar</packaging>
<name>empirecl-service</name>

<dependencies>
    <dependency>
        <groupId>com.netsol</groupId>
        <artifactId>empirecl-dao</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>jar</type>
    </dependency>
------------------------------------------

Dao 模块 maven 清理并安装成功,但是当我尝试使用服务模块时,它将生成以下异常:

 [ERROR] Failed to execute goal on project empirecl-service: Could not resolve dependencies for project com.netsol:empirecl-service:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT: Failed to read artifact descriptor for com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT: Could not find artifact com.netsol:empirecl:pom:0.0.1-SNAPSHOT -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project empirecl-service: Could not resolve dependencies for project com.netsol:empirecl-service:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT

我正在尝试从网络上查找解决方案,但仍未找到解决方案。在 Eclipse 中,当我打开服务模块的 Dependency Hierarchy 时,它将 DAO 模块显示为文件夹而不是 jar。下面是服务模块 Dependency Hierarchy 的屏幕截图。

在此处输入图像描述

原文由 Harmeet Singh Taara 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 662
1 个回答

如果有人回到这里,我认为这里的问题是未能首先安装父 pom,所有这些子模块都依赖于它,因此 Maven Reactor 无法收集必要的依赖项来构建子模块。

所以从根目录(这里 D:\luna_workspace\empire_club\empirecl )它可能只需要一个:

 mvn clean install

(除此之外: <relativePath>../pom.xml</relativePath> 并不是真正必要的,因为 它是默认值)。

原文由 declension 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题