首页 > 解决方案 > 随机 Mapstruct 编译错误可能吗?

问题描述

遇到无法重现的罕见构建问题,不确定是否应该接受它,或者它可能是可以修复的。我的项目包含许多模块,其中一些使用 Mapstruct 并且它也是随机的会失败。

环境 它在 maven 和 gradle 中发生了好几次。受影响的 mapstruct 的多个版本(1.4.2、1.4.1、1.3.1)它是 openJDK11,构建在 Bamboo 上运行,项目中使用的工件。

1.4.2错误:

映射处理器中的内部错误:org.mapstruct.ap.internal.writer.ModelWriter.(ModelWriter.java:51) 处的 java.lang.ExceptionInInitializerError

然后很多行和:

java.lang.RuntimeException: 无法在 org.mapstruct.ap.shaded.freemarker.template.Configuration.(Configuration.java:194) 加载和解析 freemarker/version.properties ... 196 更多原因:java.util。 zip.ZipException:ZipFile 在 java.base/java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:1012) 的 java.base/java.util.zip.ZipFile.ensureOpenOrZipException(ZipFile.java:924) 处关闭在 java.base/java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:468) 在 java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:159) 在 java.base/java .io.FilterInputStream.read(FilterInputStream.java:133) 在 java.base/java.io.FilterInputStream.read(FilterInputStream.java:107) 在 java.base/java.util.Properties$LineReader.readLine(Properties.java :498) 在 java.base/java.util.Properties.load0(Properties.java:416) 在 java.base/java.util.Properties.load(Properties.java:404) 在 org.mapstruct.ap.shaded.freemarker .模板.配置。

1.3.1错误:

错误:映射处理器中的内部错误:org.mapstruct.ap.shaded.freemarker.ext.beans.ClassIntrospector.isAllowedToExpose(ClassIntrospector.java:534) 处的 java.lang.ExceptionInInitializerError

然后

错误 2020 年 4 月 2 日 14:26:15 STDERR: 02) 在 org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute 的 org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) (EventFiringTaskExecuter.java:52) 在 org.gradle.execution.plan.LocalTask​​NodeExecutor.execute(LocalTask​​NodeExecutor.java:43) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355) 在 org. gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336) 在 org.gradle.execution.taskgraph。DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute( DefaultPlanExecutor.java:129) 在 org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202) 在 org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193) 在 org .gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) 在 org.gradle.internal.concurrent.ManagedExecutorImpl $1.run(ManagedExecutorImpl.java:48) 在 java.base/java。util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable。在 java.base/java.lang.Thread.run(Thread.java:834) 运行(ThreadFactoryImpl.java:56) 原因:java.lang.IllegalStateException:zip 文件在 java.base/java.util.zip 关闭。 ZipFile.ensureOpen(ZipFile.java:915) 在 java.base/java.util.zip.ZipFile.getEntry(ZipFile.java:347) 在 java.base/java.util.zip.ZipFile$1.getEntry(ZipFile.java :1121) 在 java.base/java.util.jar.JarFile.getEntry0(JarFile.java:576) 在 java.base/java.util.jar.JarFile.getEntry(JarFile.java:506) 在 java.base/ sun.net.www.protocol.jar.URLJarFile.getEntry(URLJarFile.java:131) 在 java.base/sun.net.www.protocol.jar。JarURLConnection.connect(JarURLConnection.java:137) 在 java.base/sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:155) 在 java.base/java.net.URLClassLoader.getResourceAsStream(URLClassLoader. java:328) 在 java.base/java.lang.Class.getResourceAsStream(Class.java:2650) 在 org.mapstruct.ap.shaded.freemarker.ext.beans.UnsafeMethods.createUnsafeMethodsSet(UnsafeMethods.java:45) 在 org .mapstruct.ap.shaded.freemarker.ext.beans.UnsafeMethods.(UnsafeMethods.java:34)UnsafeMethods.createUnsafeMethodsSet(UnsafeMethods.java:45) 在 org.mapstruct.ap.shaded.freemarker.ext.beans.UnsafeMethods.(UnsafeMethods.java:34)UnsafeMethods.createUnsafeMethodsSet(UnsafeMethods.java:45) 在 org.mapstruct.ap.shaded.freemarker.ext.beans.UnsafeMethods.(UnsafeMethods.java:34)

相同开头的类似错误,但第二部分如下所示:

在 org.gradle.util.Swapper.swap(Swapper.java:38) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) 在 org.gradle.launcher.daemon.server .api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution .proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly .java:37) 在 org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment 的 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)。doBuild(EstablishBuildEnvironment.java:82) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution. java:104) 在 org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) 在 org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) 在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) 在 java.base/java.util。 concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) 在 java.base/java.lang.Thread.run(Thread.java:834) 引起:java.lang.RuntimeException :无法加载不安全的方法 null java.io.IOException Stream closed at org.mapstruct.ap.shaded.freemarker.ext.beans.UnsafeMethods.createUnsafeMethodsSet(UnsafeMethods.java:82) at org.mapstruct.ap.shaded.freemarker。 ext.beans.UnsafeMethods.(UnsafeMethods.java:34)82) 在 org.mapstruct.ap.shaded.freemarker.ext.beans.UnsafeMethods.(UnsafeMethods.java:34)82) 在 org.mapstruct.ap.shaded.freemarker.ext.beans.UnsafeMethods.(UnsafeMethods.java:34)

标签: mavengradleartifactorybamboomapstruct

解决方案


推荐阅读