如何从eclipse默认测试类路径中排除库?

时间:2017-06-20 13:20:52

标签: java eclipse

我有一个有趣的问题。我有两个项目,它们都依赖于库的不同版本。由于版本限制,各个项目无法更改其依赖项。

所以:

项目A取决于lib版本1

项目B依赖于lib版本2

lib版本2与版本1二进制兼容,但具有其他功能,因此我们不希望更新项目A以依赖于版本2.

当运行仅涉及项目A的测试时,类路径是完美的,它只包含lib的版本1.

当运行仅涉及项目B的测试时,类路径是完美的,它只包含lib的第2版。

当运行涉及项目A和B的测试时,类路径被破坏,因为它包含lib的版本1和版本。

有没有办法说“只使用这个库进行编译,而不是为运行时类路径导出”?这在某些方面与JAR文件上的导出标志相关(但相反),因为它将它作为编译依赖项导出到您依赖的项目。我希望将其导出为运行时依赖项。

从命令行运行时,这一切都适合我们,只有在Eclipse中我们才能看到这个问题。

1 个答案:

答案 0 :(得分:1)

可以通过junit运行配置对话框为junit启动配置指定类路径。请参阅此处“自定义测试配置”部分:https://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-junit.htm

junit run configuration dialog (图片来自https://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-junit.htm

需要将新版本的库添加到默认元素之前的类路径中,以便在类加载期间首先看到新的库版本。

配置正确的类路径后,通过Export ... -> Launch Configurations将启动配置导出到工作区。然后,您可以通过右键单击它并选择Run as -> <Your Lauch Config name>

来运行它