suc*_*awk 5 eclipse m2eclipse maven m2e
我花了一段时间来做这个观察,但我看到m2e"神奇地"管理了类路径.
示例:如果我在"src/java/main"源文件夹中作为Java应用程序运行,则它将排除"test"范围.注意:该类能够编译,但无法运行.但是,如果我将同一个类移动到"src/java/test"文件夹,那么它就能够编译并运行.
如果我Run as JUnit Test那么总是包含"测试"范围(即使该类在"主"源文件夹中).
我发现这些发现的唯一方法是在运行时转储java.class.path系统属性.
我在http://www.eclipse.org/m2e/documentation/m2e-faq.html上找到了以下内容
另请注意,用于启用Maven支持的项目的JUnit和Java Application启动配置的类路径也以特殊方式计算,排除的资源也不会影响它.
当我比较他们的运行配置时,我看不出任何差异,那么我怎样才能看到正在执行的魔术?
有没有办法通过运行配置或任何其他方式覆盖"正常"行为?
引用自https://bugs.eclipse.org/bugs/show_bug.cgi?id=410228:
以下是 m2e 如何决定 Java 应用程序启动是否应使用测试范围或运行时工件范围。
- “run as junit test”和“run as testng test”使用测试范围。
- 如果应用程序主类位于 src/test/java 下,“作为 java 应用程序运行”则使用测试范围,否则使用运行时范围。
这意味着您可以使用主类的位置来控制行为。