0

我猜这样的错误是因为类路径中有两个冲突的 jar。当我将这些行放入我的 pom 中时:

<dependency>
 <groupId>org.springframework.security</groupId>
 <artifactId>spring-security-config</artifactId>
 <version>${spring.version}</version>
</dependency>

它失败了,但是当我把那些

<dependency>
  <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-aop</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-core</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-context</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-beans</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-expression</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>

有用。这是另一个必须应用这些排除项的 jar,即 spring-security-web。

有没有更优雅的方法来做到这一点?也许问题出在其他地方,而这只是“黑客”之类的?

4

1 回答 1

0

Spring Security 与 Spring Core 有不同的版本方案(我相信历史上它们是由不同的组织维护的)。我建议你不要使用泛型${spring.version}变量。

阅读相应弹簧安全版本所需的最低弹簧芯的文档

如果您认为所有版本控制都正确,那么下一个可能的原因是您的 Maven 配置本身。通常您没有意识到您已将设置设置为不从中央存储库查找/您的组织内部 maven 存储库 (nexus) 有一个过时的索引,没有最新版本的 spring 工件

于 2013-08-11T22:58:27.143 回答