当你看代码发现使用ServiceLoader去加载,但是加载出来的结果跟你想要的不一样,缺失了一部分,可以检查下是不是这个问题
一个因此导致的报错
cannot find a NameResolver for xxx
如题,当使用maven shade打包时,会导致SPI的文件被覆盖,也就是一个接口,只有一个实现
增加如下配置即可,会进行文件合并
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>