Skip to content

Spotless Maven plugin fails in VS Code m2e build with NoClassDefFoundError: lombok.launch.PatchFixesHider$ModuleClassLoading, but works in CLI Maven #4284

@CloudSen

Description

@CloudSen

Env

System: MacOS 26.1 (25B78)
VSCode: 1.107.0
Plugins:

alefragnani.project-manager-12.8.0
cwan.native-ascii-converter-1.0.9
davidanson.vscode-markdownlint-0.60.0
editorconfig.editorconfig-0.17.4
foxundermoon.shell-format-7.2.8
github.copilot-1.388.0
github.copilot-chat-0.33.5
github.copilot-chat-0.35.0
goessner.mdmath-2.7.4
google.gemini-cli-vscode-ide-companion-0.19.1
hbenl.vscode-test-explorer-2.22.1
huizhou.githd-2.5.7
jebbs.plantuml-2.18.1
johnpapa.read-time-1.0.0
k--kato.intellij-idea-keybindings-1.7.6
kevinrose.vsc-python-indent-1.21.0
littlefoxteam.vscode-python-test-adapter-0.8.2
luanvu.spring-i18n-0.0.4
mechatroner.rainbow-csv-3.23.0
mhutchie.git-graph-1.30.0
ms-python.black-formatter-2025.2.0
ms-python.debugpy-2025.16.0-darwin-arm64
ms-python.python-2025.20.0-darwin-arm64
ms-python.vscode-pylance-2025.10.4
ms-python.vscode-python-envs-1.12.0-darwin-arm64
ms-vscode.test-adapter-converter-0.2.1
ms-vscode.wordcount-0.1.0
njpwerner.autodocstring-0.6.1
openai.chatgpt-0.5.50
openai.chatgpt-0.5.51-darwin-arm64
pkief.material-icon-theme-5.29.0
rdebugger.r-debugger-0.5.5
redhat.java-1.50.0-darwin-arm64
redhat.vscode-xml-0.29.0-darwin-arm64
redhat.vscode-yaml-1.19.1
reditorsupport.r-2.8.6
reditorsupport.r-syntax-0.1.3
shd101wyy.markdown-preview-enhanced-0.8.20
slightc.pip-manager-1.1.4
streetsidesoftware.code-spell-checker-4.2.6
vmware.vscode-boot-dev-pack-0.2.2
vmware.vscode-spring-boot-2.0.2025121100
vscjava.vscode-gradle-3.17.1
vscjava.vscode-java-debug-0.58.2025112507
vscjava.vscode-java-dependency-0.26.5
vscjava.vscode-java-pack-0.30.5
vscjava.vscode-java-test-0.43.2
vscjava.vscode-lombok-1.1.1
vscjava.vscode-maven-0.45.1
vscjava.vscode-spring-boot-dashboard-0.14.2025041702
vscjava.vscode-spring-initializr-0.12.0
vscodevim.vim-1.32.3
waderyan.gitblame-11.2.0
yangbaopan.vscode-java-ibatisx-2024.12.9
yzane.markdown-pdf-1.5.0
yzhang.markdown-all-in-one-3.6.3

Minimal Reproducible POM

maven project: https://github.com/CloudSen/vscode-java-issue-demo

Description

We have a Maven project using spotless-maven-plugin with Eclipse JDT formatter and member sorting enabled.

The project builds successfully when running Maven from the command line (mvn / mvnw), but fails intermittently when built inside the VS Code with Red Hat Java extensions.

This appears to be related to IDE-triggered Maven execution and classloader differences.

Spotless configuration

<plugin>
  <groupId>com.diffplug.spotless</groupId>
  <artifactId>spotless-maven-plugin</artifactId>
  <version>${spotless-maven-plugin.version}</version>
  <configuration>
    <java>
      <eclipse>
        <sortMembersEnabled>true</sortMembersEnabled>
        <sortMembersOrder>SF,SI,SM,F,I,C,M,T</sortMembersOrder>
        <sortMembersVisibilityOrderEnabled>true</sortMembersVisibilityOrderEnabled>
        <sortMembersVisibilityOrder>B,R,D,V</sortMembersVisibilityOrder>
      </eclipse>

      <importOrder>
        <wildcardsLast>false</wildcardsLast>
        <order>,javax,java,#</order>
        <semanticSort>false</semanticSort>
      </importOrder>

      <removeUnusedImports/>
      <trimTrailingWhitespace/>
      <endWithNewline/>
    </java>

    <upToDateChecking>
      <enabled>true</enabled>
      <indexFile>${project.basedir}/spotless-index</indexFile>
    </upToDateChecking>
  </configuration>

  <executions>
    <execution>
      <phase>install</phase>
      <goals>
        <goal>check</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Behavior

Works correctly:

  • ./mvnw clean verify
  • ./mvnw spotless:check

Fails in VSCODE during:

  • automatic build
  • project import
  • refresh / update project
  • java: clean workspace

Error

Failed to execute mojo com.diffplug.spotless:spotless-maven-plugin:2.46.1:check {execution: default} (com.diffplug.spotless:spotless-maven-plugin:2.46.1:check:default:install)

org.eclipse.core.runtime.CoreException: Failed to execute mojo com.diffplug.spotless:spotless-maven-plugin:2.46.1:check {execution: default}
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeMojo(MavenExecutionContext.java:404)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.lambda$2(MavenExecutionContext.java:355)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:458)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:339)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:354)
	at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:57)
	at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.lambda$2(MavenBuilderImpl.java:159)
	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:986)
	at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:139)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:164)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$1(MavenBuilder.java:109)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:458)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:292)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$0(MavenBuilder.java:100)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:458)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:339)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:278)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:83)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:192)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1109)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:299)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:355)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:449)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:452)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:564)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:512)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:594)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:208)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:309)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to check file /Users/clouds3n/Coding/cisdi/specification/技术委员会/infra/cisdigital-elite-forge-infra-framework/cisdigital-elite-forge-infra-crypto/src/test/java/unit/algorithm/SM2CryptoTest.java
	at com.diffplug.spotless.maven.SpotlessCheckMojo.process(SpotlessCheckMojo.java:94)
	at com.diffplug.spotless.maven.AbstractSpotlessMojo.execute(AbstractSpotlessMojo.java:256)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeMojo(MavenExecutionContext.java:402)
	... 32 more
Caused by: com.diffplug.spotless.ThrowingEx$WrappedAsRuntimeException: java.lang.reflect.InvocationTargetException
	at com.diffplug.spotless.ThrowingEx.asRuntimeRethrowError(ThrowingEx.java:136)
	at com.diffplug.spotless.Formatter.legacyErrorBehavior(Formatter.java:145)
	at com.diffplug.spotless.DirtyState.of(DirtyState.java:83)
	at com.diffplug.spotless.DirtyState.of(DirtyState.java:77)
	at com.diffplug.spotless.DirtyState.of(DirtyState.java:73)
	at com.diffplug.spotless.maven.SpotlessCheckMojo.process(SpotlessCheckMojo.java:81)
	... 35 more
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.diffplug.spotless.extra.java.EclipseJdtFormatterStep.lambda$apply$0(EclipseJdtFormatterStep.java:52)
	at com.diffplug.spotless.FormatterFunc$NeedsFile.apply(FormatterFunc.java:174)
	at com.diffplug.spotless.FormatterStepEqualityOnStateSerialization.format(FormatterStepEqualityOnStateSerialization.java:49)
	at com.diffplug.spotless.Formatter.computeWithLint(Formatter.java:170)
	at com.diffplug.spotless.DirtyState.of(DirtyState.java:97)
	at com.diffplug.spotless.DirtyState.of(DirtyState.java:82)
	... 38 more
Caused by: java.lang.NoClassDefFoundError: lombok/launch/PatchFixesHider$ModuleClassLoading
	at org.eclipse.jdt.internal.compiler.parser.Parser.<clinit>(Parser.java:836)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.parse(CompilationUnitResolver.java:643)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.toCompilationUnit(CompilationUnitResolver.java:1423)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver$ECJCompilationUnitResolver.toCompilationUnit(CompilationUnitResolver.java:109)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateASTCached(ASTParser.java:1395)
	at org.eclipse.jdt.core.dom.ASTParser.lambda$1(ASTParser.java:1274)
	at org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles(JavaModelManager.java:5708)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1274)
	at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:918)
	at org.eclipse.jdt.internal.core.SortElementsOperation.processElement(SortElementsOperation.java:148)
	at org.eclipse.jdt.internal.core.SortElementsOperation.executeOperation(SortElementsOperation.java:99)
	at com.diffplug.spotless.extra.glue.jdt.EclipseJdtSortMembers$Sorter.sort(EclipseJdtSortMembers.java:214)
	at com.diffplug.spotless.extra.glue.jdt.EclipseJdtSortMembers.sortMember(EclipseJdtSortMembers.java:73)
	at com.diffplug.spotless.extra.glue.jdt.EclipseJdtFormatterStepImpl.sort(EclipseJdtFormatterStepImpl.java:66)
	at com.diffplug.spotless.extra.glue.jdt.EclipseJdtFormatterStepImpl.format(EclipseJdtFormatterStepImpl.java:51)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	... 45 more
Caused by: java.lang.ClassNotFoundException: lombok.launch.PatchFixesHider$ModuleClassLoading
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
	at com.diffplug.spotless.FeatureClassLoader.findClass(FeatureClassLoader.java:79)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
	... 61 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions