从具有相同包路径的两个模块导入两个不同的 类
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”
我有下一个 类:
- app.B.src.main.java.di.AModule.kt //依赖注入模块
- app.B.src.main.java.domain.App.java //主应用程序
- 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
项目A
和B
是相互独立的。作为 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
...
我有一个包含主 POM 模块的 Maven 项目,例如 Main。 Main 包含两个 pom 模块:“core”和“app”。 “core”包含 jar-module“A”,“app”包含 jar-module“B” 我有下一个 类:
- app.B.src.main.java.di.AModule.kt //依赖注入模块
- app.B.src.main.java.domain.App.java //主应用程序
- 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
项目A
和B
是相互独立的。作为 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
...