本文介绍了如何让JUnit5与JDK10(Jigsaw)和Maven3一起工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!,我和一些朋友一起开发了一个JDK 10应用程序,该应用程序使用Jigsaw特性集(在jdk9中引入)和Junit5,并使用maven作为构建管理。,但是,如果我们尝试使用Maven运行测试,我们总是会得到一个无法访问的对象异常
例外情况如下:,我从几天起就在谷歌上搜索…在jdk9中,它可以简单地用–许可-非法访问来寻址,但在jdk10中这是不可能的,因为这个标志被删除了。来自Junit5和GitHub上的其他人的jdk10代码示例并没有像看起来那样使用拼图。,所以看起来我在maven、模块或JVM args配置中遗漏了一些重要的东西。
如果有人能在这件事上提供帮助就太好了。,非常感谢!,该项目的一些其他信息可能会对您有所帮助:,主要代码由一个模块信息文件配置,该文件向每个人导出(而不是打开)(它是一个类似于代码库的框架)
测试代码未模块化
当前未应用JVM参数,使用的版本:,依赖关系:,生成插件:,完整堆栈跟踪:,今天我找到了该问题的两个解决方案。,1)您可以添加–添加-打开至surefire插件配置:,这是可行的,因为默认情况下,surefire插件添加–添加–读取到sureFireargs文件,而JUnit5使用反射,而”读取”是不够的。,2)或者,您可以将所有JUnit5测试类(及其带注释的方法)标记为公共。这也会有所帮助,因为在这种情况下,JUnit在运行测试时将不会使用反射(至少在5.3.1版中不会)。,附注:我使用的是maven-编译器-plugin版本3.8.0和maven-surefire-plugin 3.0.0-M1。,这篇关于如何让JUnit5与JDK10(Jigsaw)和Maven3一起工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,