如何解决记录需要ASM8
我想使用具有预览功能的最新Java 15。我正在使用Spring Boot 2.4.0-M2和Gradle 6.7-rc2,它们都支持Java 15功能。
我想使用臂架从我的项目中构建一个Docker映像。这是我的臂架配置:
jib {
from {
image = 'openjdk:15-jdk'
}
to {
image = '<username>/<project>'
}
container {
jvmFlags = ['--enable-preview']
}
}
不幸的是,当我运行./gradlew jib
时,出现以下错误:
Execution failed for task ':jib'.
> Records requires ASM8
这是使用--info
标志运行时的输出:
> Task :jib FAILED
Caching disabled for task ':jib' because:
Build cache is disabled
Task ':jib' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Searching for main class... Add a 'mainClass' configuration to 'jib' to improve build speed.
Could not find a valid main class from 'jar' task; looking into all class files to infer main class.
:jib (Thread[Execution worker for ':',5,main]) completed. Took 0.003 secs.
有人遇到过类似的问题吗?
解决方法
ASM具有一种内部机制,其中应用程序必须通过代码选择要使用的API级别。这意味着在这种情况下,仅更新依赖项将无济于事。
长期解决方案是等待臂架切换到较新的API级别。
但是Semaphore and synchronization建议您明确指定主类时不需要ASM。
因此,您可以通过指定主类来绕过“旧的” ASM API级别,这也可以加快臂架构建步骤,如日志中所述。)
,由于错误消息Could not find a valid main class from 'jar' task
,该任务的主类丢失了。因此,您必须添加主类,并且该过程应该可以正常工作:
mainClassName = "your.MainClass"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。