无法理解 Maven 依赖层次结构下的托管版本

Couldn't understand managed version under Maven dependency hierarchy

在我的 pom.xml 中,我有一个 SikuliX Jar,它对 jna-platform 具有传递依赖性。 如下图所示,版本 4.5.2 已覆盖版本 5.4.0。 但我不明白,这个版本是如何被覆盖的,因为我没有为 jna-platform 指定任何依赖项。我还验证了没有任何依赖项正在获取这个 jar。

请帮我理解为什么会这样。非常感谢任何详细的文件。

相关依赖:-

    <dependency>
        <groupId>com.sikulix</groupId>
        <artifactId>sikulixapi</artifactId>
        <version>2.0.4</version>
        <exclusions>
            <exclusion>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

谢谢

由于您使用的是 spring 引导,如此处所建议的那样(这也是此行为的原因):

java.lang.NoClassDefFoundError: com/sun/jna/platform/win32/SspiUtil$ManagedSecBufferDesc #882

您可以更改依赖项的顺序,或指定确切的版本,如下所示:

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna-platform</artifactId>
    <version>5.4.0</version>
</dependency>

或添加此 属性:

<jna.version>5.4.0</jna.version>