从具有相同包路径的两个模块导入两个不同的 类

Importing two different classes from two modules with the same package path

我有一个包含主 POM 模块的 Maven 项目,例如 Main。 Main 包含两个 pom 模块:“core”和“app”。 “core”包含 jar-module“A”,“app”包含 jar-module“B” 我有下一个 类:

  1. app.B.src.main.java.di.AModule.kt //依赖注入模块
  2. app.B.src.main.java.domain.App.java //主应用程序
  3. core.A.src.main.java.domain.BModule.kt //又一次注射

当我将 AModule.kt 和 BModule.kt 导入 App.java 时,它看起来像

import di.AModule;
import di.BModule;

Maven 无法完成安装阶段并说“找不到符号”指向 import AModule,这在语义上更接近于App.java

我应该如何处理 pom 文件或包来解决这个问题?

P.S。我还有一个问题,maven 在测试阶段

期间看不到 core.A.src.test.java.SomethingTest.kt

你的项目(根据你的问题可以提取的内容):

+- Main
   +- core
      +- src/main/java
      |  +- di
      |     +- AModule.kt
      +- target
      |  +- A.jar
      +- pom.xml ... <artifactId>A
   +- app
      +- src/main/java
      |  +- domain
      |     +- App.java
      |     +- BModule.kt
      +- target
      |  +- B.jar
      +- pom.xml ... <artifactId>B

项目AB是相互独立的。作为 Main<module>,您只需一次构建它们(通过构建 Main)。

为了能够在 App 中引用 AModule,您必须在 B 的 POM 中将其 JAR A 声明为 <dependency>

    ...
    <artifactId>B</artifactId>
    ...
    <dependencies>
        <dependency>
            <groupId>...</groupId>
            <artifactId>A</artifactId>
            <version>...</version>
        </dependency>
    ...

包含代码且应创建工件的 <packaging> 类型的项目必须是 jar, war, etc.,而不是 pom

还建议将不同的来源类型分开,例如:

   ...
   +- app
   |  +- src/main
   |     +- java
   |     |  +- domain
   |     |     +- App.java
   |     +- kotlin
   |        +- domain
   |           +- BModule.kt
   ...