这个项目运行良好。我只是在 pom.xml 中玩弄 Spring boot 版本,导入了一些新的 Maven 项目,然后发现对于这些新项目,Springboot 注释和导入停止工作 -
Cannot resolve @SpringBootApplication
pom.xml-
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.in28minutes.database</groupId>
<artifactId>database-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>database-demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.11.RELEASE</version>
<!--<version>1.5.2.RELEASE</version>-->
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</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-jdbc</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-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
我有另一个设置,它使用 spring boot 1.5.2.RELEASE。 我检查了这两个版本都在我的本地 .m2 存储库中。不知道问题出在哪里。
看来,所有导入的新项目都引发了同样的问题。 例如。 https://github.com/callicoder/spring-boot-actuator-demo
更新
我意识到我的主项目有一些依赖项(从远程服务器下载的 Maven 存储库)。这些在 .m2/settings.xml 中定义。
当我在命令行上运行 mvn install 时,出现此错误 -
[错误]无法在项目actuator-demo上执行目标:无法解析项目com.example:actuator-demo:jar:0.0.1-SNAPSHOT的依赖关系:无法在org.springframework.boot:spring收集依赖关系-boot-starter-actuator:jar:2.1.11.RELEASE: 无法读取 org.springframework.boot:spring-boot-starter-actuator:jar:2.1.11.RELEASE: 无法传输 Artifact org.springframework .boot:spring-boot-starter-actuator:pom:2.1.11.RELEASE from/to nexus ( https://project.repository.com/repository/maven-public/ ): 无法传输文件: https://project.repository.com/repository/maven-public/org/springframework/boot/spring-boot-starter-actuator/2.1.11.RELEASE/spring-boot-starter-actuator-2.1.11.RELEASE.pom 。返回代码为: 502 ,原因短语:网关错误。 -> [帮助1]
我备份了 settings.xml 并将其删除。我干净地运行了 mvn,这次它从 mvn 远程存储库下载了 Artifact ,问题得到了解决。
不确定为我的工作项目和演示项目切换 settings.xml 的正确方法是什么,因为前者需要这些设置。
最佳答案
从命令行进行测试以确保 Maven 设置正确。如果 Maven 无法通过 CLI 运行,请修复它(也许您确实需要删除存储库并重新下载所有内容)。如果您有非来自在线存储库的 Artifact ,则删除存储库时请务必小心。
根据您的编辑,您需要为 Maven 使用不同的 settings.xml。这样做:
mvn --settings ~/.m2/settings-demo.xml 全新安装
这将使用备用设置文件。对于Intellij,您可以在maven设置中指定settings.xml文件(选中“Override”并放入新路径):
Maven 通过 CLI 工作 - Intellij 有时会变得愚蠢,尝试转到 File
-> Invalidate Caches/Restart
并选择“Invalidate and Restart”
关于java - Spring Boot 注释和导入在 Intellij IDE 上无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59455328/