Maven - 如何在父项目的 pom 中添加一个模块作为依赖

sha*_*bby 1 eclipse maven m2e

我在这个问题中提到了一个情况。

我有一个多模块 Maven 项目,其中包含一个父项目 P 和两个子模块 A 和 B。当我只有 A 作为子模块时,它运行良好。我在主项目中添加了一个新的源文件夹,创建了一个包并添加了一个类(我在这里做错了什么?),我们称之为模块 B。现在我将包 B 中的类导入到包 A 中的类中,但是A 的 pom 没有更新以包含 B 作为依赖项,因此当我尝试 mvn 编译父项目时,它给出了错误未定义符号 B。

  1. 我是否错误地添加了项目 B?因为它里面没有任何 pom 吗?
  2. 如引用的问题中所述,如何在主项目的 pom 文件中添加 B 作为依赖项?

编辑:添加 poms 和代码

这是项目 A 的 pom

<dependencies>
    <dependency>
      <groupId>javax.slee</groupId>
      <artifactId>jain-slee</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mobicents.servers.jainslee.core</groupId>
      <artifactId>fault-tolerant-ra-api</artifactId>
      <version>2.6.0.FINAL</version>
    </dependency>
    <dependency>
      <groupId>org.mobicents</groupId>
      <artifactId>hello-slee-world-sbb</artifactId>
      <version>1.0</version>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

现在它提到了 B 的依赖项。这是项目A中B的参考。

import BPackage.*;
Run Code Online (Sandbox Code Playgroud)

这就是我在 A 中使用 B 的方式。

BPackage 中只有一个名为 BClass 的类。现在我问我是否错误地添加了包,即我需要在 maven 添加一些东西吗?以便创建它的 pom 并将其依赖项添加到 A 中。

此外,我想在编译父项时同时构建 B 和 A,因此在这种情况下,我想我还需要在父项 pom 中添加 A。这是父母的 pom

  <modules>
    <module>sbb</module>
    <module>customRAType-ratype</module>
    <module>customAdaptor-ra</module>
    <module>du</module>
  </modules>
Run Code Online (Sandbox Code Playgroud)

customAdaptor-ra 是项目 A

car*_*ing 5

您的每个项目都需要有一个 pom.xml。顶层项目需要具备

<modules>
   <module>project1</module>
   <module>project2</module>
</modules>
Run Code Online (Sandbox Code Playgroud)

如果project2依赖project1,则需要<dependency/>在 project2 的 pom.xml 中为其定义一个。

  • 只是澄清一下,对 project1 的依赖应该在 project2 的 pom 中,而不是在父 pom 中。 (2认同)