eclipse支持mapstruct,解决ClassNotFoundException

本文详细介绍了如何在Eclipse中安装m2e-apt插件,以及进行注解处理的配置。通过菜单Help->Eclipse Marketplace搜索并安装插件,然后在Window->Preference中设置Maven->AnnotationProcessing,启用自动配置JDT APT。这对于使用MapStruct、Lombok等库的开发者来说是必要的步骤,以解决ClassNotFoundException等相关问题。

1、安装m2e-apt插件的最新版本

菜单“Help->Eclipse Marketplace”

 在Eclipse Marketplace窗口,输入m2e-apt查找,如下图:

点击安装,默认安装即可

2、配置注解解析

菜单“Window->Preference”

 

找到“Maven->Annotation Processing”,选择“Automatically configure JDT APT”

 

3、参考

How to solve ClassNotFoundException: Cannot find implementation for xxx? · Issue #2527 · mapstruct/mapstruct · GitHubMapstruct、Lombok、Maven 和 Eclipse is my environment. But after I read #1159 projectlombok/lombok#1359 #929 #742 ... I still cannot find a way to solve the problem...https://github.com/mapstruct/mapstruct/issues/2527

java.lang.ExceptionInInitializerError at org.jetbrains.jps.cmdline.ClasspathBootstrap.getBuildProcessApplicationClasspath(ClasspathBootstrap.java:134) at com.intellij.compiler.server.impl.BuildProcessClasspathManager.getBuildProcessClasspath(BuildProcessClasspathManager.kt:43) at com.intellij.compiler.server.BuildManager.launchBuildProcess(BuildManager.java:1568) at com.intellij.compiler.server.BuildManager.lambda$scheduleBuild$16(BuildManager.java:990) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:244) at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:30) at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:222) at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:218) at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:210) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassFormatError: LocalVariableTable has wrong length in class file org/apache/maven/model/Repository at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager$1.serviceCreationFailed(ArtifactRepositoryManager.java:76) at org.eclipse.aether.impl.DefaultServiceLocator.serviceCreationFailed(DefaultServiceLocator.java:291) at org.eclipse.aether.impl.DefaultServiceLocator.access$000(DefaultServiceLocator.java:79) at org.eclipse.aether.impl.DefaultServiceLocator$Entry.newInstance(DefaultServiceLocator.java:175) at org.eclipse.aether.impl.DefaultServiceLocator$Entry.getInstances(DefaultServiceLocator.java:139) at org.eclipse.aether.impl.DefaultServiceLocator$Entry.getInstance(DefaultServiceLocator.java:125) at org.eclipse.aether.impl.DefaultServiceLocator.getService(DefaultServiceLocator.java:278) at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.<clinit>(ArtifactRepositoryManager.java:80) ... 18 more Caused by: java.lang.RuntimeException: java.lang.ClassFormatError: LocalVariableTable has wrong length in class file org/apache/maven/model/Repository at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager$1.serviceCreationFailed(ArtifactRepositoryManager.java:76) at org.eclipse.aether.impl.DefaultServiceLocator.serviceCreationFailed(DefaultServiceLocator.java:291) at org.eclipse.aether.impl.DefaultServiceLocator.access$000(DefaultServiceLocator.java:79) at org.eclipse.aether.impl.DefaultServiceLocator$Entry.newInstance(DefaultServiceLocator.java:175) at org.eclipse.aether.impl.DefaultServiceLocator$Entry.getInstances(DefaultServiceLocator.java:139) at org.eclipse.aether.impl.DefaultServiceLocator$Entry.getInstance(DefaultServiceLocator.java:125) at org.eclipse.aether.impl.DefaultServiceLocator.getService(DefaultServiceLocator.java:278) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.initService(DefaultRepositorySystem.java:147) at org.eclipse.aether.impl.DefaultServiceLocator$Entry.newInstance(DefaultServiceLocator.java:169) ... 22 more Caused by: java.lang.ClassFormatError: LocalVariableTable has wrong length in class file org/apache/maven/model/Repository at java.base/java.lang.ClassLoader.defineClass2(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1108) at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:289) at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:113) at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:58) at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:240) at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:190) at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:240) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) at org.apache.maven.model.building.DefaultModelBuilderFactory.newModelValidator(DefaultModelBuilderFactory.java:149) at org.apache.maven.model.building.DefaultModelBuilderFactory.newInstance(DefaultModelBuilderFactory.java:227) at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.initService(DefaultArtifactDescriptorReader.java:119) at org.eclipse.aether.impl.DefaultServiceLocator$Entry.newInstance(DefaultServiceLocator.java:169) ... 27 more
06-10
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值