【问题标题】:Maven cannot compile Spring Security demo projectMaven 无法编译 Spring Security 演示项目
【发布时间】:2014-08-07 04:24:36
【问题描述】:

我有一个 Maven 演示项目,我使用了一些 Spring Security 功能。

我可以将项目很好地导入 Eclipse STS,并且编辑器没有显示与依赖项相关的错误。

但是在命令行上编译的 Maven 命令失败。

我收到以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project learnintouch-web: Compilation failure: Compilation failure:
[ERROR] /home/stephane/dev/java/projects/learnintouch-web/src/main/java/com/thalasoft/learnintouch/web/config/WebSecurityConfiguration.java:[7,78] package org.springframework.security.config.annotation.authentication.builders does not exist
[ERROR] /home/stephane/dev/java/projects/learnintouch-web/src/main/java/com/thalasoft/learnintouch/web/config/WebSecurityConfiguration.java:[8,67] package org.springframework.security.config.annotation.web.builders does not exist
[ERROR] /home/stephane/dev/java/projects/learnintouch-web/src/main/java/com/thalasoft/learnintouch/web/config/WebSecurityConfiguration.java:[9,72] package org.springframework.security.config.annotation.web.configuration does not exist
[ERROR] /home/stephane/dev/java/projects/learnintouch-web/src/main/java/com/thalasoft/learnintouch/web/config/WebSecurityConfiguration.java:[10,72] package org.springframework.security.config.annotation.web.configuration does not exist
[ERROR] /home/stephane/dev/java/projects/learnintouch-web/src/main/java/com/thalasoft/learnintouch/web/config/WebSecurityConfiguration.java:[19,47] cannot find symbol
[ERROR] symbol: class WebSecurityConfigurerAdapter
[ERROR] /home/stephane/dev/java/projects/learnintouch-web/src/main/java/com/thalasoft/learnintouch/web/config/WebSecurityConfiguration.java:[15,2] cannot find symbol
[ERROR] symbol: class EnableWebSecurity
[ERROR] /home/stephane/dev/java/projects/learnintouch-web/src/main/java/com/thalasoft/learnintouch/web/config/WebSecurityConfiguration.java:[25,34] cannot find symbol
[ERROR] symbol:   class AuthenticationManagerBuilder
[ERROR] location: class com.thalasoft.learnintouch.web.config.WebSecurityConfiguration
[ERROR] /home/stephane/dev/java/projects/learnintouch-web/src/main/java/com/thalasoft/learnintouch/web/config/WebSecurityConfiguration.java:[24,9] method does not override or implement a method from a supertype

这是 pom.xml 中的 Spring Security 依赖项:

<org.springframework.security.version>3.2.4.RELEASE</org.springframework.security.version>

<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-core</artifactId>
  <version>${org.springframework.security.version}</version>
</dependency>
<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-config</artifactId>
  <version>${org.springframework.security.version}</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-web</artifactId>
  <version>${org.springframework.security.version}</version>
</dependency>
<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-taglibs</artifactId>
  <version>${org.springframework.security.version}</version>
</dependency>

【问题讨论】:

    标签: maven spring-security


    【解决方案1】:

    我通过从spring-security-config 工件上的pom.xml 中删除此行来解决此问题:

       <scope>runtime</scope>
    

    【讨论】:

      【解决方案2】:

      需要手动添加spring安全库。

      <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-config</artifactId>
          <version>3.2.4.RELEASE</version>
      </dependency>
      

      【讨论】:

        【解决方案3】:

        我可以通过添加 springframework.version 和 springsecurity.version 的最新可能兼容版本来解决这个问题。

        例如:

        <properties>
                <springframework.version>5.1.1.RELEASE</springframework.version>
                <springsecurity.version>5.1.1.RELEASE</springsecurity.version> 
        </properties>
        

        同样在依赖项中,我添加了以下内容:

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>5.1.1.RELEASE</version>
        </dependency>
        
        
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>5.1.1.RELEASE</version>
        </dependency>
        

        现在效果很好。

        【讨论】:

          【解决方案4】:

          我彻底检查了依赖项,现在构建通过了。 Spring依赖之间存在一些冲突。

          【讨论】:

          • 你本可以更具体和详细 - 这几乎没有帮助。
          【解决方案5】:

          我在阅读一些 Spring Security 教程时遇到了同样的问题。这是由于版本冲突造成的。

          更新您的 POM 以删除所有 Spring 依赖项的版本信息。然后放入 spring-framework-bom 来处理您的版本控制,它应该可以工作。

          <dependencyManagement>
              <dependencies>
                <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-framework-bom</artifactId>
                  <version>4.0.0.RELEASE</version>
                  <type>pom</type>
                  <scope>import</scope>
                </dependency>
              </dependencies>
          </dependencyManagement>
          

          【讨论】:

          • 闻起来很腥
          【解决方案6】:

          在我的情况下,这个错误是由版本冲突引起的

          有 java 8 maven 应用程序,将版本更改为 java7 并制作了 mvn eclipse:eclipse 从cmd它正在运行,但从eclipse给出错误: WebSecurityConfigurerAdapter 无法解析为类型

          在项目显示所有 jar 之后,工作并不容易 未显示安全罐 出现错误:WebSecurityConfigurerAdapter 无法解析为类型

          右击 从菜单中选择:配置 -> 转换为 Maven 项目 右键单击项目并选择属性-> java构建路径后: 检查java版本,删除不正确的java版本 用按钮 [添加库] 更改为 ide 的 java 版本 仍在属性窗口中选择:java编译器 编译器合规级别组 改成ide的java版本 在哪里显示不正确的版本

          就是这样

          【讨论】:

            【解决方案7】:

            似乎是版本冲突问题。 我遇到了同样的问题,可以通过将 spring-security 版本从 3.1.7 更改为 3.2.4 来解决。 希望它可以帮助某人。

            【讨论】:

              【解决方案8】:

              如果你有 spring boo 项目添加以下依赖,好像缺少 Spring 安全 jar

                <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-security</artifactId>
                  </dependency>
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-test</artifactId>
                      <scope>test</scope>
                  </dependency>
                  <dependency>
                      <groupId>org.springframework.security</groupId>
                      <artifactId>spring-security-test</artifactId>
                      <scope>test</scope>
                  </dependency>
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-devtools</artifactId>
                      <optional>true</optional>
                  </dependency>
              
                  <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-actuator</artifactId>
                  </dependency>
              

              【讨论】:

                猜你喜欢
                • 2020-12-04
                • 1970-01-01
                • 2014-03-17
                • 2021-07-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-06-25
                • 2016-10-27
                相关资源
                最近更新 更多