繁体   English   中英

在Eclipse中,如何从一个具有依赖项的另一个项目中排除一个maven项目的测试文件夹?

[英]In Eclipse, how do I exclude test folder of one maven project from another project that has as a dependency?

我在同一个工作区中将两个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,因为它无法区分两个Factory类。 如果我在命令行中构建所有项目,则它们没有问题。

您可能会认为Eclipse会忽略Project A Factory类,因为它正在测试中。

我正在使用m2e插件。 我当前的解决方法是设置m2e,使其不解析工作空间中P​​roject C的依赖项。 这将强制其下载将不进行测试的jar。 但是,这意味着我要更改A或B,必须手动安装A或B将最新的jar推送到本地存储库,并更新Project C的依赖项以获取最新的jar。

有没有办法从Project C的构建路径中排除Project A测试文件夹,以便我可以继续解析工作空间中的所有内容? 感觉像是Eclipse破坏了Maven项目的基础。

我认为您只是受到上游错误影响的另一个用户: https : //bugs.eclipse.org/bugs/show_bug.cgi?id=376616

总而言之,错误报告讨论包括:

JDT每个Eclipse项目仅实现一个构建路径。 这几乎不可能改变,因为这是基本的设计选择,许多API和实现细节都依赖于此。

好吧,但是我想那并不能真正回答您的问题。 因此,我在这里看到多个选项,具体取决于您可能对项目产生的影响:

  • 尝试重命名其中一个类=>名称将是唯一的
  • 或者,如果这些类包含基本相同的功能,使用项目之间的依赖项,或者甚至创建新的类,那么其他两个类将依赖
  • 这几乎是我现在想到的

也许您可以尝试以下操作:在项目A的“属性”对话框中(通过右键单击该项目,然后单击“属性”到达该对话框),
单击左侧的部署程序集。
Eclipse将显示所有源文件夹。
选择测试文件夹(/ test),然后单击“删除”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM