Delombok Maven执行失败,缺少必需的类com / sun / tools / javac / tree / JCTree $ JCCompilationUnit

时间:2019-01-30 19:00:08

标签: java lombok

我试图在我们的一个项目中使用delombok,因为SonarQube在代码质量检查中给出了错误的肯定结果。以下是我的Maven构建条目,但出现以下错误。我想念什么?

我正在使用Spring STS,JDK 8和Spring Boot。

<build>
    <sourceDirectory>${project.build.directory}/generated-sources/delombok</sourceDirectory>
    <testSourceDirectory>target/generated-test-sources/delombok</testSourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok-maven-plugin</artifactId>
            <version>${delombok-maven-plugin.version}</version>
            <executions>
            <execution>
              <id>delombok</id>
              <phase>generate-sources</phase>
              <goals>
                <goal>delombok</goal>
              </goals>
              <configuration>
                <addOutputDirectory>false</addOutputDirectory>
                <sourceDirectory>src/main/java</sourceDirectory>
              </configuration>
            </execution>
            </executions>
            <configuration>
            <addOutputDirectory>false</addOutputDirectory>
            <sourceDirectory>src/main/java</sourceDirectory>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

错误

Execution delombok of goal org.projectlombok:lombok-maven-plugin:1.18.4.0:delombok failed: A required class was missing while executing org.projectlombok:lombok-maven-plugin:1.18.4.0:delombok: com/sun/tools/javac/tree/JCTree$JCCompilationUnit
-----------------------------------------------------
realm =    plugin>org.projectlombok:lombok-maven-plugin:1.18.4.0
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/demouser/.m2/repository/org/projectlombok/lombok-maven-plugin/1.18.4.0/lombok-maven-plugin-1.18.4.0.jar
urls[1] = file:/C:/Users/demouser/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
urls[2] = file:/C:/Users/demouser/.m2/repository/org/projectlombok/lombok/1.18.4/lombok-1.18.4.jar
urls[3] = file:/C:/Users/demouser/.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[maven.api, parent: null]]

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

org.apache.maven.plugin.PluginExecutionException: Execution delombok of goal org.projectlombok:lombok-maven-plugin:1.18.4.0:delombok failed: A required class was missing while executing org.projectlombok:lombok-maven-plugin:1.18.4.0:delombok: com/sun/tools/javac/tree/JCTree$JCCompilationUnit
-----------------------------------------------------
realm =    plugin>org.projectlombok:lombok-maven-plugin:1.18.4.0
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/demouser/.m2/repository/org/projectlombok/lombok-maven-plugin/1.18.4.0/lombok-maven-plugin-1.18.4.0.jar
urls[1] = file:/C:/Users/demouser/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
urls[2] = file:/C:/Users/demouser/.m2/repository/org/projectlombok/lombok/1.18.4/lombok-1.18.4.jar
urls[3] = file:/C:/Users/demouser/.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[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$11.call(MavenImpl.java:1362)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$11.call(MavenImpl.java:1)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177)
    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$1.method(MavenBuilder.java:172)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1$1.call(MavenBuilder.java:115)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1.call(MavenBuilder.java:105)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177)
    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$2.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$1.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:142)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:232)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: org.apache.maven.plugin.PluginContainerException: A required class was missing while executing org.projectlombok:lombok-maven-plugin:1.18.4.0:delombok: com/sun/tools/javac/tree/JCTree$JCCompilationUnit
-----------------------------------------------------
realm =    plugin>org.projectlombok:lombok-maven-plugin:1.18.4.0
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/demouser/.m2/repository/org/projectlombok/lombok-maven-plugin/1.18.4.0/lombok-maven-plugin-1.18.4.0.jar
urls[1] = file:/C:/Users/demouser/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
urls[2] = file:/C:/Users/demouser/.m2/repository/org/projectlombok/lombok/1.18.4/lombok-1.18.4.jar
urls[3] = file:/C:/Users/demouser/.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[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/tree/JCTree$JCCompilationUnit
    at lombok.delombok.Delombok.getModuleField(Delombok.java:642)
    at lombok.delombok.Delombok.<clinit>(Delombok.java:639)
    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:139)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    ... 31 more
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.tree.JCTree$JCCompilationUnit
    at java.lang.ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at lombok.launch.ShadowClassLoader.loadClass(ShadowClassLoader.java:530)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 41 more

0 个答案:

没有答案