在简单的 Maven 项目中找不到依赖 spring-boot-starter-security
Posted
技术标签:
【中文标题】在简单的 Maven 项目中找不到依赖 spring-boot-starter-security【英文标题】:The dependency spring-boot-starter-security is not found in a simple Maven project 【发布时间】:2020-11-08 21:54:40 【问题描述】:我正在尝试在一个简单的 Spring Boot 应用程序 (Maven) 中注入 spring-boot-starter-security 依赖项。我尝试从实际 Spring 网站的“保护 Web 应用程序”教程中复制此依赖项,我还尝试将其与 spring 安全测试依赖项和 thymeleaf spring 安全依赖项一起实现。
以下是出现“未找到”错误的依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
这是完整的 pom 文件:
4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.1.发布 com.homehero 家庭英雄 0.0.1 战争
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
我觉得有必要提前感谢你们,如果我错过了一些非常愚蠢的事情,我很抱歉,我真的希望我没有!
【问题讨论】:
请添加错误日志输出...。 嗨@khmarbaise,我在日志中没有收到错误消息。我可以运行应用程序而不会遇到任何问题。 【参考方案1】:不确定您是如何创建项目的。我可以告诉您简单的解决方案,即转到 Spring Initializer ,链接为https://start.spring.io/
在那里您可以添加所有所需的依赖项,然后只需单击“生成”,它将下载您的项目。您可以将项目导入您的 IDE 并运行 maven 构建。我仅尝试使用 Spring boot 2.3.1 版本提到,它对我有用,应该对你有用。
另外,我建议你使用 Intellij IDE,它默认带有 maven 支持,所以它会让你很容易。你可以从这里下载 Intellij 免费版: https://www.jetbrains.com/idea/download/#section=windows
希望对你有所帮助。
【讨论】:
我支持这个 - 看起来你的 pom 文件中没有 spring boot 父级。无论如何,在start.spring.io 上配置您的项目是初学者避免此类问题的最可靠方法。 大家好,感谢您抽出宝贵时间帮助我。我使用 IntelliJ IDEA 创建了我的初始项目。它也有效,我使用 JPA 创建了一些表并制作了一些控制器来使用它们。无论如何我可以重做整个项目,但如果这种事情会重演,我可能会在那个时候更深入地进行项目,我真的很想以某种方式解决这个问题。 @AlexNaie,如果它对您有帮助,请您接受答案,以便对其他人也有帮助。谢谢。【参考方案2】:我解决了这个问题。
长话短说,我的一个朋友建议用 Spring Initializer 做一个新项目,这次从头开始添加“Spring Boot Security”依赖项。之后,我只需要比较 pom 文件。唯一的区别是新项目有一个:
<scope>test</scope>
线。我将它添加到我的初始项目中,第一个依赖项不再出现错误。第二个依赖是 Thymeleaf spring security 一个,为了修复这个我添加了:
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
</dependency>
到我的 pom 文件。
这就是现在的依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
就是这样,谢谢你们也提供的所有答案。
【讨论】:
【参考方案3】:查看父 POM.xml 文件的版本。当我将版本更改为 2.0.0 时,我的项目找到了依赖项。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
【讨论】:
以上是关于在简单的 Maven 项目中找不到依赖 spring-boot-starter-security的主要内容,如果未能解决你的问题,请参考以下文章