我已经使用Spring Initializer设置了一个Spring启动项目,我尝试了几次来创建一个新项目或者使用依赖项,所有内容似乎都已到位。
我正在使用STS(Spring Tool Suite),它显示有关org.springframework.boot
包导入的错误。运行应用程序会引发异常:
线程“main”中的异常java.lang.Error:未解析的编译 问题:SpringApplication无法解决。
com.example.DemoApplication:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
的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.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<start-class>com.example.DemoApplication</start-class>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我正在使用带有STS的Java 1.8。
答案 0 :(得分:21)
更改spring boot parent的版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
答案 1 :(得分:15)
项目上的右键 - &gt; Maven - &gt;更新项目
然后检查&#34;强制更新快照/版本&#34;
答案 2 :(得分:4)
如果以下步骤不起作用:
将我的Spring Boot 1.4.2.RELEASE替换为1.5.10.RELEASE
此错误的原因可能是同一版本的多个版本已下载到您的maven本地存储库文件夹中。
请按照以下步骤清除所有现有的存储库jar,并根据POM.xml中定义的依赖项从头开始下载..
答案 3 :(得分:4)
从pom.xml中,尝试删除spring存储库条目,默认情况下将从maven存储库下载。我尝试过1.5.6.RELEASE并且工作得非常好。
答案 4 :(得分:3)
在我的项目中,将对spring-boot-starter-parent的依赖关系从2.0.0.release更新为2.0.5.relese。 这样做可以解决导入org.springframework.boot.SpringApplication无法解决的问题
答案 5 :(得分:1)
我的第一个Spring启动应用程序时遇到了同样的问题。
在教程中,我可以看到以下依赖关系来启动示例应用程序
我也做了同样的事情,我的Spring STS正在识别所有类但是当我用@SpringBootApplication注释我的主类时,它不能识别这个类,而我可以看到jar在类路径中可用。
我有以下问题解决问题
之后它起作用了。
谢谢
答案 6 :(得分:1)
当我尝试使用基本的Spring启动应用程序时,我遇到了同样的问题。我试图使用官方spring-boot site中的最新spring-boot版本。
与今天一样,最新版本为 1.5.4.RELEASE 。但是我不断在我的eclipse IDE上遇到编译问题而不管项目的多次清理。我将spring-boot的版本降低到 1.5.3.RELEASE ,它只是工作 !!我早期的一些项目使用的是旧版本,它促使我尝试这个选项。
答案 7 :(得分:0)
也许本地Maven存储库中的JAR文件有问题。尝试删除.m2 / repository文件夹,然后单击Maven-> Update Project ...,再次触发Maven重新下载依赖项。我试过了,对我有用。
答案 8 :(得分:0)
当您将应用程序作为jar运行时,您的Manifest.MF
文件应该知道哪个类具有main方法。
要在SpringBoot编译代码时添加此信息,请在您的pom文件中添加start-class
属性。
E.g:
<properties>
<start-class>com.example.DemoApplication</start-class>
</properties>
答案 9 :(得分:0)
没有必要删除相对路径。只需更改springframework引导的父版本即可。以下版本2.1.2成功运行。
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.appsdeveloperblog.app.ws</groupId>
<artifactId>mobile-app-ws</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mobile-app-ws</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.appsdeveloperblog.app.ws</groupId>
<artifactId>mobile-app-ws</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
答案 10 :(得分:0)
我的工作是通过添加
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-autoconfigure -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
我不知道为什么,而不是直接使用其他主要依赖项。
答案 11 :(得分:0)
解决方案是在文件pom.xml中更改Spring的版本
@google-cloud/compute
答案 12 :(得分:0)
尝试一下,它可能也对您有用。
这对我在v1.5和v2.1上都有效
答案 13 :(得分:0)
对于大多数读者来说,这个答案可能是不合时宜的。在我的情况下,依赖关系没有更新,并且“ mvn clean”不起作用,因为我办公室的wifi网络高度安全,留下了“连接超时”。 (同样尊重github推和拉不起作用) 我刚搬到手机旁玩耍,就可以了。 愚蠢,大多数情况下都没话题,但这可能会帮助某些非常特殊的情况。
答案 14 :(得分:0)
使用STS时出现此问题。编辑完某些内容后,我看到了一些工作区 创建项目时会发生此问题,而其他人则不会。所以我只是在工作区中创建一个新项目就不会发生。
答案 15 :(得分:0)
将Spring引导升级到最新版本-2.3.3.RELEASE之后。我也收到此错误-Cannot resolve org.springframework.boot:spring-boot-starter-test:unknown
。 Maven干净安装,更新Maven项目,清理缓存无济于事。
解决方案是从spring boot parent pom添加版本占位符:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring-boot.version}</version>
<scope>test</scope>
</dependency>
答案 16 :(得分:-1)
从“ C:\ Users \ usename.m2”中删除存储库文件夹,然后再次创建或更新maven项目。