我有一个非常奇怪的情况。我有一组 eclipse 插件项目,我使用 tycho 和 maven 来构建它们。我在其中一个项目中使用了 JDBC 驱动程序,并且我有一个测试插件来测试这个项目。由于 com.mysql.jdbc 插件在 eclipse p2 存储库中不可用(而且我们没有自己的 p2),我导入了 jdbc 插件并创建了一个 OSGi 插件并将依赖项添加到我的本地插件中。
我有多个 Eclipse 工作区。只有在创建测试和 jdbc 插件的第一个工作区中,当我使用 eclipse run as -> Junit test 命令运行 junit 测试时,它们才有效。当其他人甚至我检出源代码并尝试在不同的工作区中运行测试时,会抛出此异常:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我也尝试使用 tycho 集成测试(运行 mvn 集成测试),但这也不起作用,我仍然得到相同的异常。我尝试了很多搜索,但找不到答案。
更新:我认为这不是第谷问题。我只是尝试创建基于 com.jdbc.mysql jar 的 eclipse 插件。我在上面创建的工作区工作正常。但是,一旦我提交代码并将项目导入另一个工作区,测试就会停止工作。两个工作区之间的所有设置都是相同的,一个正在工作,另一个得到 ClassNotFound 异常!