Eclipse junit 测试使用错误版本的 Maven jar
Eclipse junit tests using wrong version of maven jars
我有两个项目一起编译 运行。这些项目使用某些 jar 的不同版本。所以我的 Maven 存储库中可能有 foo.1.15.jar 和 foo.1.16.jar 。 pom 文件正确指定了哪个项目应该使用哪个 jar,我可以 运行 mvn 验证 运行 我所有的集成测试都不会从命令行出现问题。
但是,当我尝试从 eclipse 中 运行 进行 junit 测试时,我经常 运行 由于使用了错误的 jar 版本而出错。我相信 eclipse 总是使用它在 maven repo 中找到的最新版本的 jar,所以如果它看到 foo.1.15 和 foo.1.16 它将使用 16 版本。问题是我 想要 15 版本,如果它们 运行 与 16 版本测试失败,因为它不向后兼容。
如何让eclipse识别它需要使用旧版本?特别是有没有一种方法可以让 junit 测试识别我的 pom 文件并使用 pom 中指定的正确 jar 版本?
如果相关,我正在使用 m2eclipse。
编辑:看来问题不是每次都坚持使用最新的 jar。
问题是我的项目A使用我的项目B。A使用foo.16,B使用foo.15。 A 的 junit 测试尝试使用 foo.16,即使它在依赖于 15 的 B 中 运行ning 类。但是,我不能真正改变依赖性,A 需要 16,B 需要15.我能让eclipse理解这个吗?
您关于 Eclipse 始终使用最新版本的 Maven 工件的假设是不正确的。
然而,Eclipse 只支持一个项目一个类路径,无法区分 Maven 依赖范围,因此测试范围依赖也在 Eclipse 编译和运行时类路径中。很难判断这是否真的与您的问题有关。
您可以打开 POM 编辑器并查看“依赖层次结构”选项卡以找出(传递的)依赖路径和用于每个工件的版本。这可能会为您提供修复设置的线索。
我有两个项目一起编译 运行。这些项目使用某些 jar 的不同版本。所以我的 Maven 存储库中可能有 foo.1.15.jar 和 foo.1.16.jar 。 pom 文件正确指定了哪个项目应该使用哪个 jar,我可以 运行 mvn 验证 运行 我所有的集成测试都不会从命令行出现问题。
但是,当我尝试从 eclipse 中 运行 进行 junit 测试时,我经常 运行 由于使用了错误的 jar 版本而出错。我相信 eclipse 总是使用它在 maven repo 中找到的最新版本的 jar,所以如果它看到 foo.1.15 和 foo.1.16 它将使用 16 版本。问题是我 想要 15 版本,如果它们 运行 与 16 版本测试失败,因为它不向后兼容。
如何让eclipse识别它需要使用旧版本?特别是有没有一种方法可以让 junit 测试识别我的 pom 文件并使用 pom 中指定的正确 jar 版本?
如果相关,我正在使用 m2eclipse。
编辑:看来问题不是每次都坚持使用最新的 jar。
问题是我的项目A使用我的项目B。A使用foo.16,B使用foo.15。 A 的 junit 测试尝试使用 foo.16,即使它在依赖于 15 的 B 中 运行ning 类。但是,我不能真正改变依赖性,A 需要 16,B 需要15.我能让eclipse理解这个吗?
您关于 Eclipse 始终使用最新版本的 Maven 工件的假设是不正确的。
然而,Eclipse 只支持一个项目一个类路径,无法区分 Maven 依赖范围,因此测试范围依赖也在 Eclipse 编译和运行时类路径中。很难判断这是否真的与您的问题有关。
您可以打开 POM 编辑器并查看“依赖层次结构”选项卡以找出(传递的)依赖路径和用于每个工件的版本。这可能会为您提供修复设置的线索。