我在同一个工作区中将两个 Maven 项目导入到 Eclipse 中。两者都有一个具有相同名称和包的类,但不同的实现和在每个项目中的不同位置。让我们调用这个类com.namespace.Factory
项目 A 在其测试文件夹下有 Factory,即:/src/test/java/com/namespace/Factory.java
项目 B 在其主要源文件夹下有 Factory,即:/src/main/java/com/namespace/Factory.java
还有一个项目 C 依赖于两者。项目 C 还使用项目 B 中的 Factory 进行一些单元测试。现在的问题是 Eclipse 无法编译 Project C,因为它无法区分两个工厂类。如果我在命令行中构建所有项目,它们就没有问题。
您会认为 Eclipse 会忽略 Project A Factory 类,因为它正在测试中。
我正在使用 m2e 插件。我目前的工作是设置 m2e 以不解决工作区中项目 C 的依赖关系。这会迫使它下载其中没有测试的 jar。但是,这意味着我在 A 或 B 中都有更改,我必须手动安装 A 或 B 将最新的 jar 推送到本地 repo,并更新项目 C 的依赖项以拉下最新的 jar。
有没有办法从项目 C 的构建路径中排除项目 A 测试文件夹,以便我可以继续解决工作区中的所有问题?感觉就像 Eclipse 正在破坏 maven 项目的基础。