m2e何时以及如何使用Maven测试范围在Eclipse Run Configurations中包含测试依赖项?

时间:2016-12-08 03:45:59

标签: eclipse maven m2eclipse m2e

我花了一段时间来做这个观察,但我看到m2e"神奇地"管理类路径。

实施例: 如果我在" src / java / main"中作为Java应用程序运行它排除的源文件夹" test"范围。注意:该类能够编译,但无法运行。但是,如果我将同一个类移动到" src / java / test"然后它可以编译并运行。

如果我Run as JUnit Test那么"测试"范围始终包含在内(即使该类位于" main"源文件夹中)。

我发现这些的唯一方法是在运行时转储java.class.path系统属性。

我在http://www.eclipse.org/m2e/documentation/m2e-faq.html

找到了以下内容
  

另请注意,该类路径用于JUnit和Java Application的启动   启用了Maven支持的项目的配置也是   以特殊方式计算,排除的资源不会影响它   任

当我比较他们的跑步配置时,我看不出任何差异,那么我怎样才能看到正在执行的魔术? 有没有办法覆盖"正常"通过运行配置或任何其他方式的行为?

1 个答案:

答案 0 :(得分:3)

引自https://bugs.eclipse.org/bugs/show_bug.cgi?id=410228

  

以下是m2e如何决定java应用程序启动是否应该使用测试或运行时工件范围。

     
      
  • “作为junit test运行”和“作为testng test运行”使用测试范围。
  •   
  • “作为java应用程序运行”如果应用程序主类位于src / test / java下,则使用测试范围,否则使用运行时范围。
  •   

这意味着您可以使用主类的位置来控制行为。