java.lang.NoClassDefFoundError after several times of analyzing

SonarQube verison: Developer Edition 9.3 (build 51899)
sonar-scanner-api version: 2.16.2.588
We want to collect the coverage from the running system. So, we created an application based on spring boot using sonar-scanner-api to report the coverage report to the sonarqube server.

EmbeddedScanner scanner = EmbeddedScanner.create("xxx-service", "1.0.0", new ScannerLogger());
scanner.setGlobalProperty(ScannerProperties.HOST_URL, this.sonarProperties.getUrl());
scanner.setGlobalProperty("sonar.login", this.sonarProperties.getLogin());
scanner.setGlobalProperty("sonar.password", this.sonarProperties.getPassword());
scanner.setGlobalProperty("sonar.log.level", this.sonarProperties.getLogLevel());
scanner.setGlobalProperty("sonar.findbugs.timeout", this.sonarProperties.getFindbugsTimeout());
scanner.setGlobalProperty(ScanProperties.PROJECT_SOURCE_ENCODING, "UTF-8");
scanner.start();
scanner.execute(projectSetting);

The application runs well. But after several times of analyzing, the application will raise some “java.lang.NoClassDefFoundError” with some spring boot or jetty(the web server) class. I’m sure these classes are in the classpath and can be load at start.
Here is an example:

java.lang.NoClassDefFoundError: com/rabbitmq/client/impl/ConsumerDispatcher$2
	at com.rabbitmq.client.impl.ConsumerDispatcher.handleCancelOk(ConsumerDispatcher.java:91)
	at com.rabbitmq.client.impl.ChannelN$7.transformReply(ChannelN.java:1485)
	at com.rabbitmq.client.impl.ChannelN$7.transformReply(ChannelN.java:1479)
	at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.handleCommand(AMQChannel.java:486)
	at com.rabbitmq.client.impl.RpcContinuationRpcWrapper.complete(RpcContinuationRpcWrapper.java:38)
	at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:200)
	at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:114)
	at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:739)
	at com.rabbitmq.client.impl.AMQConnection.access$300(AMQConnection.java:47)
	at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:666)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: com.rabbitmq.client.impl.ConsumerDispatcher$2
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 11 common frames omitted

And here is another one:

java.lang.NoClassDefFoundError: org/eclipse/jetty/io/AbstractConnection$1
	at org.eclipse.jetty.io.AbstractConnection.failedCallback(AbstractConnection.java:100)
	at org.eclipse.jetty.server.HttpConnection.access$1200(HttpConnection.java:56)
	at org.eclipse.jetty.server.HttpConnection$SendCallback.onCompleteFailure(HttpConnection.java:881)
	at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:245)
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
	at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:528)
	at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:915)
	at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:987)
	at org.eclipse.jetty.server.HttpOutput.channelWrite(HttpOutput.java:284)
	at org.eclipse.jetty.server.HttpOutput.complete(HttpOutput.java:480)
	at org.eclipse.jetty.server.Response.completeOutput(Response.java:926)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:538)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
	at java.base/java.lang.Thread.run(Thread.java:829)

Whether the scanner api will unload class after analyzing, and is there a probability the scanner will unload the classes loaded by the other thread?