你好,
这是整个 Java 17 故事 #26767 的一部分,是针对第 6 点和第 7 点的解决方案,我们访问内部以重置状态(URL.factory
在 Servlet 测试中清除)或创建测试场景(设置xdostime
)ZipEntry
,并且没有其他方法可以修复这些问题(除了为 JDK 17 禁用它们)
- 与 5 类似的问题,但在 AbstractServletWebServerFactoryTests.tearDown() 中 - 可能与打开模块的解决方案类似
- JarFileTests.jarFileEntryWithEpochTimeOfZeroShouldNotFail() 失败,因为它尝试在 ZipEntry 上设置 xdostime,而 ZipEntry 是内部的。我们可以针对 JDK 17 及更高版本禁用该测试,或者再次尝试打开模块。
这个想法是ToolchainExtension
使用一个新属性来扩展,该属性设置任务的 JVM 参数Test
(如果给定)。我将其设计为灵活的,因此可以传递任何类型的 JVM 参数,而不仅仅是提供一种打开模块的方法。
在此过程中,我还删除了--illegal-access=warn
对 Java 17 没有影响的。如果您希望我保留它,我可以将其保留在较低版本上,但实际上它只会在 Java 16 管道上设置,因为这是目前唯一基于工具链的构建。一旦我们有了 17 的管道,16 的管道很可能会消失。
请告诉我你的想法。干杯,克里斯托弗