Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exception about missing maven classes when opening the dev-ui (gradle based project) #45112

Closed
jmini opened this issue Dec 13, 2024 · 12 comments · Fixed by #46680
Closed

Exception about missing maven classes when opening the dev-ui (gradle based project) #45112

jmini opened this issue Dec 13, 2024 · 12 comments · Fixed by #46680
Labels
Milestone

Comments

@jmini
Copy link
Contributor

jmini commented Dec 13, 2024

Describe the bug

When you generate the most simple quarkus app using Gradle:
https://code.quarkus.io/?b=GRADLE

Start it in dev mode with ./gradlew quarkusDev

Open the dev ui http://localhost:8080/q/dev-ui/

Expected behavior

No Exception, everything is working

Actual behavior

I got different errors about missing Maven classes:

2024-12-13 10:05:26,851 ERROR [io.qua.dev.run.jso.JsonRpcCodec] (ForkJoinPool.commonPool-worker-9) Error in JsonRPC Call: java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: org/apache/maven/settings/building/SettingsBuildingException
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/settings/building/SettingsBuildingException
        at io.quarkus.bootstrap.resolver.maven.MavenArtifactResolver.<init>(MavenArtifactResolver.java:90)
        at io.quarkus.bootstrap.resolver.maven.MavenArtifactResolver$Builder.build(MavenArtifactResolver.java:74)
        at io.quarkus.devtools.project.buildfile.MavenProjectBuildFile.getMavenResolver(MavenProjectBuildFile.java:151)
        at io.quarkus.devtools.project.buildfile.MavenProjectBuildFile.getProject(MavenProjectBuildFile.java:54)
        at io.quarkus.devtools.project.QuarkusProjectHelper.getCachedProject(QuarkusProjectHelper.java:59)
        at io.quarkus.devui.deployment.menu.ExtensionsProcessor.getQuarkusProject(ExtensionsProcessor.java:202)
        at io.quarkus.devui.deployment.menu.ExtensionsProcessor.lambda$getInstalledNamespaces$4(ExtensionsProcessor.java:124)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
        ... 6 more
Caused by: java.lang.ClassNotFoundException: org.apache.maven.settings.building.SettingsBuildingException
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        ... 14 more

Or:

2024-12-13 09:18:42,853 ERROR [io.qua.dev.run.jso.JsonRpcCodec] (ForkJoinPool.commonPool-worker-15) Error in JsonRPC Call: java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: org/apache/maven/model/profile/activation/ProfileActivator
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/model/profile/activation/ProfileActivator
        at io.quarkus.bootstrap.resolver.maven.MavenArtifactResolver.<init>(MavenArtifactResolver.java:90)
        at io.quarkus.bootstrap.resolver.maven.MavenArtifactResolver$Builder.build(MavenArtifactResolver.java:74)
        at io.quarkus.devtools.project.buildfile.MavenProjectBuildFile.getMavenResolver(MavenProjectBuildFile.java:151)
        at io.quarkus.devtools.project.buildfile.MavenProjectBuildFile.getProject(MavenProjectBuildFile.java:54)
        at io.quarkus.devtools.project.QuarkusProjectHelper.getCachedProject(QuarkusProjectHelper.java:59)
        at io.quarkus.devui.deployment.menu.ExtensionsProcessor.getQuarkusProject(ExtensionsProcessor.java:202)
        at io.quarkus.devui.deployment.menu.ExtensionsProcessor.lambda$getInstalledNamespaces$4(ExtensionsProcessor.java:124)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
        ... 6 more
Caused by: java.lang.ClassNotFoundException: org.apache.maven.model.profile.activation.ProfileActivator
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        ... 14 more

Screenshot of the dev ui:

Image

How to Reproduce?

No response

Output of uname -a or ver

No response

Output of java -version

No response

Quarkus version or git rev

3.17.4

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

@jmini jmini added the kind/bug Something isn't working label Dec 13, 2024
Copy link

quarkus-bot bot commented Dec 13, 2024

/cc @cescoffier (devui), @phillip-kruger (devui), @quarkusio/devtools (maven)

@jmini jmini changed the title Exception about missing maven classes when opening the dev-ui (gralde based project) Exception about missing maven classes when opening the dev-ui (gradle based project) Dec 13, 2024
@jmini
Copy link
Contributor Author

jmini commented Dec 13, 2024

I just checked the affected versions:

@aloubyansky aloubyansky added the area/gradle Gradle label Dec 13, 2024
@jmini
Copy link
Contributor Author

jmini commented Dec 13, 2024

@aloubyansky I am not sure if this is really a gradle issue, for me it is more something in the dev-ui that assumes it can access some maven classes that are obviously not present.

@aloubyansky
Copy link
Member

AFAIU, the issue is not observed in Maven projects? It seemed like a Gradle project classpath configuration issue.

@jmini
Copy link
Contributor Author

jmini commented Dec 13, 2024

I did not debug it (yet), but I would say something is wrong here:

BuildTool buildTool = detectExistingBuildTool(projectDir);
if (buildTool == null) {
buildTool = BuildTool.MAVEN;
}
if (BuildTool.MAVEN.equals(buildTool)) {
try {
return MavenProjectBuildFile.getProject(projectDir, log, null);
} catch (RegistryResolutionException e) {
throw new RuntimeException("Failed to initialize the Quarkus Maven extension manager", e);
}
}

I am obviously not in a maven project 😉

@phillip-kruger
Copy link
Member

That is something I added. I'll have a look

@jmini
Copy link
Contributor Author

jmini commented Dec 13, 2024

I don't even know how I can debug detectExistingBuildTool(..).

Is this a runtime thing or something that needs to be debugged at compile-time. Right now I don't see it in the dependencies of my quarkus project.

@phillip-kruger
Copy link
Member

@aloubyansky please can you have a look.

@gsmet
Copy link
Member

gsmet commented Dec 17, 2024

This is problematic, we need it fixed before next LTS.

@github-project-automation github-project-automation bot moved this to Under discussion in WG - Quarkus 3.20 LTS Dec 17, 2024
@gsmet gsmet moved this from Under discussion to Planned in WG - Quarkus 3.20 LTS Dec 17, 2024
@aloubyansky
Copy link
Member

We should disable Dev UI project configuration management features for Gradle projects for now. The classpath issue is just the one on the surface and will be the easiest one to fix.

@kdubb
Copy link
Contributor

kdubb commented Mar 4, 2025

@aloubyansky What's the state of this? I'm on 3.18 and wondering if an upgrade solves this.

@RuanNunes
Copy link

Over here, I’m also waiting for the fix of this bug using Quarkus 3.19.2.

@github-project-automation github-project-automation bot moved this from Planned to Done in WG - Quarkus 3.20 LTS Mar 11, 2025
@quarkus-bot quarkus-bot bot added this to the 3.21 - main milestone Mar 11, 2025
@gsmet gsmet modified the milestones: 3.21 - main, 3.19.3 Mar 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

Successfully merging a pull request may close this issue.

6 participants