目标的执行 delombok org.projectlombok:lombok-maven-plugin:1.16.10.0:delombok 失败:执行 org.projectl 时缺少必需的 class

Execution delombok of goal org.projectlombok:lombok-maven-plugin:1.16.10.0:delombok failed: A required class was missing while executing org.projectl

我正在开发 Lombok 和 运行 来自 link 的应用程序:https://github.com/eugenp/tutorials/tree/master/lombok 尚未对该代码进行任何修改。

当我使用 > mvn clean install -DskipTests 简单地构建代码时,出现以下错误,同样的 STS 也显示相同的问题是什么?

以下错误供参考?

Execution delombok of goal org.projectlombok:lombok-maven-plugin:1.16.10.0:delombok failed: A required class was missing while executing org.projectlombok:lombok-maven-plugin:1.16.10.0:delombok: com/sun/tools/javac/util/Context
-----------------------------------------------------
realm =    plugin>org.projectlombok:lombok-maven-plugin:1.16.10.0
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/myuser/.m2/repository/org/projectlombok/lombok-maven-plugin/1.16.10.0/lombok-maven-plugin-1.16.10.0.jar
urls[1] = file:/C:/Users/myuser/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar
urls[2] = file:/C:/Users/myuser/.m2/repository/org/projectlombok/lombok/1.16.10/lombok-1.16.10.jar
urls[3] = file:/C:/Users/myuser/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar
Number of foreign imports: 5
import: Entry[import org.sonatype.plexus.build.incremental from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.Scanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.DirectoryScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.AbstractScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import  from realm ClassRealm[project>com.baeldung:lombok:0.1-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]

-----------------------------------------------------
 (org.projectlombok:lombok-maven-plugin:1.16.10.0:delombok:delombok:generate-sources)

org.apache.maven.plugin.PluginExecutionException: Execution delombok of goal org.projectlombok:lombok-maven-plugin:1.16.10.0:delombok failed: A required class was missing while executing org.projectlombok:lombok-maven-plugin:1.16.10.0:delombok: com/sun/tools/javac/util/Context
-----------------------------------------------------
realm =    plugin>org.projectlombok:lombok-maven-plugin:1.16.10.0
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/myuser/.m2/repository/org/projectlombok/lombok-maven-plugin/1.16.10.0/lombok-maven-plugin-1.16.10.0.jar
urls[1] = file:/C:/Users/myuser/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar
urls[2] = file:/C:/Users/myuser/.m2/repository/org/projectlombok/lombok/1.16.10/lombok-1.16.10.jar
urls[3] = file:/C:/Users/myuser/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar
Number of foreign imports: 5
import: Entry[import org.sonatype.plexus.build.incremental from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.Scanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.DirectoryScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.AbstractScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import  from realm ClassRealm[project>com.baeldung:lombok:0.1-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]

-----------------------------------------------------

    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:168)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:331)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.call(MavenImpl.java:1362)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.call(MavenImpl.java:1)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1360)
    at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:52)
    at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:137)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder.method(MavenBuilder.java:172)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder.method(MavenBuilder.java:1)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.call(MavenBuilder.java:115)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.call(MavenBuilder.java:105)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:86)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:200)
    at org.eclipse.core.internal.events.BuildManager.run(BuildManager.java:735)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
    at org.eclipse.core.internal.events.BuildManager.run(BuildManager.java:301)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:304)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:360)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:383)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.apache.maven.plugin.PluginContainerException: A required class was missing while executing org.projectlombok:lombok-maven-plugin:1.16.10.0:delombok: com/sun/tools/javac/util/Context
-----------------------------------------------------
realm =    plugin>org.projectlombok:lombok-maven-plugin:1.16.10.0
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/myuser/.m2/repository/org/projectlombok/lombok-maven-plugin/1.16.10.0/lombok-maven-plugin-1.16.10.0.jar
urls[1] = file:/C:/Users/myuser/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar
urls[2] = file:/C:/Users/myuser/.m2/repository/org/projectlombok/lombok/1.16.10/lombok-1.16.10.jar
urls[3] = file:/C:/Users/myuser/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar
Number of foreign imports: 5
import: Entry[import org.sonatype.plexus.build.incremental from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.Scanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.DirectoryScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.AbstractScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import  from realm ClassRealm[project>com.baeldung:lombok:0.1-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]

-----------------------------------------------------

    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:166)
    ... 31 more
Caused by: java.lang.NoClassDefFoundError: com/sun/tools/javac/util/Context
    at lombok.delombok.Delombok.<init>(Delombok.java:69)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at lombok.launch.Delombok.<init>(Delombok.java:32)
    at lombok.maven.AbstractDelombokMojo.execute(AbstractDelombokMojo.java:135)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    ... 31 more
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.util.Context
    at java.lang.ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at lombok.launch.ShadowClassLoader.loadClass(ShadowClassLoader.java:418)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 40 more

我刚得到这个问题的解决方案如下所述。

1.下载龙目岛 Jar 文件 - 最好在你的应用程序中有一个 Maven/Gradle 依赖。可以在此处找到 Maven 依赖项:https://mvnrepository.com/artifact/org.projectlombok/lombok

2。开始安装Lombok -
在本地存储库中下载 jar 后,从命令提示符转到 jar 位置,然后 运行 以下命令 java -jar lombok-1.16.18.jar 我们应该会看到 lombok 提供的 Lombok 安装 window 像这样。

3。提供 Lombok 安装路径 - 现在单击 “Specify Location” 按钮并找到 eclipse 安装文件夹下的 eclipse.exe/STS.exe 路径,如下所示。

4.完成 Lombok 安装 - 现在我们需要通过单击 “Install/Update” 按钮来最终安装它,我们应该在 eclipse 中完成 lombok 的安装,我们准备好使用它隐藏的力量。最终屏幕看起来像,

5.请确保将以下条目添加到 STS.ini 文件中,如果它不存在的话。

-vmargs -javaagent:lombok.jar

注意:完成所有这些操作后,如果这不起作用,请确保更改工作区并重新构建代码。它会起作用。