Eclipse类路径条目仅用于测试

在Maven中,您可以拥有编译时依赖项和测试依赖项。 这是我喜欢的function,M2Eclipse插件也可以在Eclipse中使用,这很棒。 因此,如果我将jmock.jar作为测试依赖项添加到我的项目中,它将显示在JUnit测试的类路径上,但在我调试应用程序本身时不会出现。

这正是我现在想要实现的目标,但没有M2Eclipse或Maven。 有没有办法在纯Eclipse中执行此操作? (可能没有安装任何插件。)

我担心答案是你做不到的。 有2个未解决的问题从与您的问题相关的3.5推迟:

  • 能够将源文件夹标记为测试源
  • [buildpath]应该能够忽略来自某些源文件夹的警告

您可以将所有测试分成另一个项目,并将主项目添加为依赖项( 项目 – >属性 – > Java构建路径 – > 项目 – > 添加…

更新:为避免更改原始项目结构,您的测试项目可以使用链接的位置。

正常创建测试项目,您现在需要创建一个链接资源来引入src / test / java文件夹。 最好使用变量创建它,以便您的项目可以保持一些平台独立性。 要创建新的链接文件夹,请选择新建 – > 文件夹 ,在文件夹名称:字段中输入src ,然后单击高级>>

单击文件系统中的链接到文件夹单击“ 变量…”以显示“ 选择路径变量”对话框。

如果这是您第一次,或者您要链接到新位置,请选择新建…并为变量提供合理的名称和路径。 如果所有项目都位于c:\ workspaces \ foo **中,则调用变量** WORKSPACE_ROOT并为其指定路径是有意义的 。 如果你有一些其他的约定很好,但是在.project文件中添加注释是有意义的,这样有人有机会弄清楚正确的值应该是什么。

假设上面的值,您现在可以在输入字段上设置WORKSPACE_ROOT / [subject project name] / src的值

一旦确认您应该看到带有小箭头的src文件夹,并且如果您查看.project文件,请看到以下内容:

   src 2 WORKSPACE_ROOT/esf-ns-core-rp/src   

您现在可以正常添加src / test / java文件夹作为源位置。

请注意,您还可以通过将配置更改为以下内容来共享src / test / java文件夹:

   src/test/java 2 WORKSPACE_ROOT/my-project/src/test/java   

这样可以更好地控制配置,但是您必须重复src / test / resources,src / it / java等。

然后,您只在测试项目中设置所有测试依赖项。

非常不漂亮,但它确实有用(我也使用过这个,我的测试合规级别与主要合规级别不同,例如1.5用于测试,但1.4用于目标环境)。

由于您同时使用Eclipse和Maven,因此可以解决它。 创建一个新的“Maven Build”运行配置,目标为“exec:java”,参数为“exec.mainClass = com.example.Starter”。 这样,类路径将由Maven计算。

实际上,如果您在eclipse中查看Maven如何集成依赖关系,那么测试库或运行时依赖关系将无法使测试库始终可访问。

如果maven控制了该部分的执行,Maven将在打包应用程序时以及在生成运行时类路径时保持不同。 当涉及eclipse时,Maven只需将它们全部添加到eclipse构建路径中。

为什么你需要这样分开呢? 这会对你有什么帮助?

Eclipse Photon 最终添加了这个function,m2e支持它。