Maven构建提示net.minidev:json-smart指定版本范围无可用版本,升级azure-identity后Azure连接失败的问题求助
Maven构建提示net.minidev:json-smart指定版本范围无可用版本,升级azure-identity后Azure连接失败的问题求助
各位好,今天早上我突然遇到了Maven构建失败的问题,之前项目一直都能正常构建,完全没出过问题,现在卡在依赖解析环节了,想请大家帮忙分析下原因,还有后续的解决办法。
一、构建报错信息
构建时直接抛出版本范围匹配失败的错误:
[ERROR] No versions available for net.minidev:json-smart:jar:[1.3.3,2.4.8] within specified range [ERROR] No versions available for net.minidev:json-smart:jar:[1.3.1,2.3] within specified range
二、我的环境信息
- Java版本:
openjdk version "1.8.0_382" OpenJDK Runtime Environment (Temurin)(build 1.8.0_382-b05) OpenJDK 64-Bit Server VM (Temurin)(build 25.382-b05, mixed mode)
- Maven版本:3.9.9
三、项目依赖配置(POM.xml核心部分)
我的项目主要用于连接Azure并调用其API,POM的依赖配置如下:
<dependencies> <dependency> <groupId>com.microsoft.graph</groupId> <artifactId>microsoft-graph</artifactId> <version>5.53.0</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.8.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.20.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.20.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.10.RELEASE</version> </dependency> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.20.0</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.4</version> </dependency> </dependencies>
四、依赖传递分析
我排查了Maven依赖树,发现问题是通过以下传递路径产生的:
com.azure:azure-identity:jar:1.8.2 -> com.microsoft.azure:msal4j:jar:1.13.7 -> com.nimbusds:oauth2-oidc-sdk:jar:9.35 -> net.minidev:json-smart:jar:[1.3.3,2.4.8]
五、尝试的解决方法及新问题
我尝试把azure-identity的版本从1.8.2升级到1.12.2,这时候Maven构建成功了,但运行代码连接Azure时又出现了新的错误:
连接错误日志1:
java.util.concurrent.ExecutionException: com.microsoft.aad.msal4j.MsalClientException: java.io.UncheckedIOException: io.netty.channel.StacklessClosedChannelException java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.microsoft.aad.msal4j.MsalClientException: java.io.UncheckedIOException: io.netty.channel.StacklessClosedChannelException at com.azure.identity.implementation.IdentitySyncClient.authenticateWithConfidentialClient(IdentitySyncClient.java:142) ~[azure-identity-1.12.2.jar:1.12.2] at com.azure.identity.ClientSecretCredential.getTokenSync(ClientSecretCredential.java:136) ~[azure-identity-1.12.2.jar:1.12.2]
连接错误日志2:
java.lang.NoClassDefFoundError: io/netty/handler/codec/http/HttpDecoderConfig at reactor.netty.http.client.HttpClientConfig.configureHttp11Pipeline(HttpClientConfig.java:684) ~[reactor-netty-http-1.0.45.jar:1.0.45] at reactor.netty.http.client.HttpClientConfig$HttpClientChannelInitializer.onChannelInit(HttpClientConfig.java:956) ~[reactor-netty-http-1.0.45.jar:1.0.45] at reactor.netty.transport.TransportConfig$TransportChannelInitializer.initChannel(TransportConfig.java:418) ~[reactor-netty-core-1.0.45.jar:1.0.45] at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline.addFirst(DefaultChannelPipeline.java:181) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline.addFirst(DefaultChannelPipeline.java:358) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline.addFirst(DefaultChannelPipeline.java:339) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.initChannel(DefaultPooledConnectionProvider.java:546) ~[reactor-netty-core-1.0.45.jar:1.0.45] at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1463) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1115) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:650) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.register(AbstractChannel.java:480) ~[netty-transport-4.1.89.Final.jar:4.1.89.Final] at reactor.netty.transport.TransportConnector.doInitAndRegister(TransportConnector.java:293) ~[reactor-netty-core-1.0.45.jar:1.0.45] at reactor.netty.transport.TransportConnector.lambda$connect$3(TransportConnector.java:170) ~[reactor-netty-core-1.0.45.jar:1.0.45] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.resubscribe(FluxRetryWhen.java:216) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onNext(FluxRetryWhen.java:269) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:258) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.3.jar:3.5.3] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) ~[reactor-core-3.5.3.jar:3.5.3]
我的Azure连接代码如下:
TokenRequestContext tokenRequestContext = new TokenRequestContext(); AccessToken accessToken = new ClientSecretCredentialBuilder().clientId(clientId).clientSecret(clientSecret) .tenantId(tenantId).build().getTokenSync(tokenRequestContext.addScopes((".default")));
我的疑问
- 为什么突然会出现
net.minidev:json-smart指定版本范围内找不到可用版本的情况?之前一直都能正常解析,是不是maven-metadata.xml有什么变化?但这个我完全没法控制,都是依赖自动下载的。 - 升级
azure-identity后构建成功了,但连接Azure报错,这个Netty相关的错误怎么解决?有没有办法在不升级azure-identity的前提下,先解决最初的构建依赖问题?
麻烦各位帮忙看看,谢谢了!
备注:内容来源于stack exchange,提问作者Avinash Reddy
相关产品推荐
相关产品推荐

