Spring security Spring security核心和Spring security crypto maven构件(重复类)

Spring security Spring security核心和Spring security crypto maven构件(重复类),spring-security,Spring Security,我正在用maven shade插件(一个uberjar)构建一个自包含的jar,我收到了所有spring安全加密类的警告: [WARNING] We have a duplicate org/springframework/security/crypto/bcrypt/BCrypt.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-securit

我正在用maven shade插件(一个uberjar)构建一个自包含的jar,我收到了所有spring安全加密类的警告:

[WARNING] We have a duplicate org/springframework/security/crypto/bcrypt/BCrypt.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/Base64.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/Hex.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/InvalidBase64CharacterException.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/package-info.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/Utf8.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/encrypt/AesBytesEncryptor$1.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/encrypt/AesBytesEncryptor.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
...
我查看了SpringSecurityCoreJAR,发现它包含SpringSecurityCrypto包含的所有类。此外,在比较来源时,你会发现它们是相同的

我知道我可以忽略它,因为类是相同的,但是:

  • 如果SpringSecurityCore中的类没有得到更新,这可能会改变
  • 更重要的是,我不明白为什么会这样?需要注意的是,spring安全内核本身对spring安全加密具有编译依赖性,这完全让我感到困惑 希望有任何解释和解决方案。

    非常有用。核心与加密之间不应该存在依赖关系。单独的crypto jar仅用于其他一些不使用Spring安全性的Spring项目。这是构建配置方式的一个副作用,它最终会出现在核心pom中

    只需为
    springsecuritycore
    添加一个pom依赖项,就可以阻止它作为一个可传递的依赖项拉入crpyto-jar