【问题标题】:How avoid Eclipse load test-class file in to classpath when Java app run?Java应用程序运行时如何避免Eclipse将测试类文件加载到类路径中?
【发布时间】:2018-05-12 23:40:03
【问题描述】:

我正在使用STS 开发一个基于 Spring Boot 的大型应用程序。我们有多个 Maven 项目和一个父项目来包含它们。每个项目都有自己的测试代码和配置文件。

当我在主入口类中运行 Spring Boot 应用程序时。依赖项目的 test-classes 文件夹将被加载到应用程序运行的类路径中,这会导致 spring bean 定义的一些冲突。我必须配置每个项目,从“构建路径上的源文件夹”中删除 [src/test/java 和 src/test/resources]。

整个项目结构如下:

应用父级

子应用程序 1

子应用程序 2

子应用程序 3

main-app [从这个项目运行]

main-app项目对sub-app-1~3有依赖。

有没有办法让 STS (Eclipse) 运行 Java 应用程序,不包括类路径中的 test-classes 文件夹?我确实想要源文件夹下的测试代码,但在应用程序运行时没有它们。

此外,我尝试打开[运行配置],但它只能向类路径添加更多文件。

【问题讨论】:

  • 在屏幕截图中显示的对话框的底部,有一个名为“排除测试代码”的复选框。勾选后,您的测试类应从类路径中省略。

标签: eclipse spring-boot spring-tool-suite


【解决方案1】:

正如@torsten-crass 所指出的,确认Exclude test code 已在Eclipse 中运行配置的Classpath 选项卡中打勾。

这是截图。

【讨论】:

  • 不知何故,我所有的启动启动配置都没有选中。这不是默认设置还是只是我的 Eclipse 设置搞砸了?
  • @elonderin 不确定。当我最近更新我的 Eclipse 时,我开始面对这个问题。
  • @elonderin:这不是默认设置,但在我看来它应该是:如果我运行的程序既不是 JUnit 测试,也不是位于 src/test/java 中的程序文件夹,我应该期望 target/test-classes 下的数据 ClassLoader 无法访问 - 除非另有明确说明。我惊讶地发现 Eclipse 的行为有所不同。
猜你喜欢
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 2012-08-13
相关资源
最近更新 更多