消散器
如果这是个愚蠢的问题,我事先很抱歉,但是我的研究结果并没有我想要的那么成功。
问题描述
我正在使用jdk 11进行一个项目,为了获得良好的测试覆盖率,我添加了一些东西来模拟外部服务的调用/应答。所以我包括了wiremock。就像他们在安装启动部分上建议的,我包括
testImplementation "com.github.tomakehurst:wiremock-jre8:2.34.0"即使在我的机器上一切正常工作(并且测试在管道上运行良好),我也不知道这是否会在其他机器上引起问题。参与该项目的架构师还表示,他担心我们只使用jre 11。
因此,我需要更多的洞察力,要么改变事物,要么争论为什么这不是一个问题。
迄今为止的尝试
我原以为会有一个更高版本的威瑞克在mavencentral,但这只是两个项目:
令我惊讶的是,wiremock jre8 8是最近的版本。我不知道旧版本是用什么编译的,但我使用的注释与2020年版本都不兼容。因此,最好不要将当前的实现降级为可读性较低的解决方案。
我要提到的是,我只猜测wiremock jre8 8是从命名中用jdk8编译的。我没有找到任何关于编译器为这些依赖项生成字节码的证据,也没有找到如何解释这些依赖项的线索。
当我试图弄清楚java、编译器和生成的字节码是如何回发和转发可梳性时,我找到了这个旧员额。简而言之,它指出:
从javac的角度来看,兼容性(因为它是JDK特有的部分),这意味着生成的字节码可以在jvm的未来版本中运行(这与JRE更相关,但也绑定在JDK中)。
我对此有部分理解,但对我的问题并不完全理解。尤其是“通常”部分。那么,是否还有更多的洞察力需要别人来启发我?:)
发布于 2022-10-31 08:41:20
他们的文档中的下载和安装部分包含了这句话:
此外,这些JAR的版本是为Java 7和Java 8+分发的。
因此,如果您仍然在运行Java1.7,则必须使用Java 7的版本。
对于所有后期版本的Java,都有用于Java8+的版本(您使用的版本)。
由于这是一个受到积极支持的项目,任何与Java 8后面版本相关的问题都将得到正确的解决和解决(例如,参见"com.github.tomakehurst:wiremock-jre8:2.32.0").中解决的构建并完全支持JDK 17 )。
https://stackoverflow.com/questions/74260438
复制相似问题