Spring Boot应用程序无法解析org.springframework.boot包

时间:2015-10-23 11:18:44

标签: java spring maven spring-mvc

我已经使用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。

17 个答案:

答案 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

  • 右键点击项目 - &gt; Maven-&GT;下载资源
  • 右键点击项目 - &gt; Maven-&GT;更新项目

此错误的原因可能是同一版本的多个版本已下载到您的maven本地存储库文件夹中。

请按照以下步骤清除所有现有的存储库jar,并根据POM.xml中定义的依赖项从头开始下载..

  1. 转到构建路径。在库添加部分中检查Maven存储库。
  2. 选择任何jar和mousehover ..它将显示本地存储库位置。 通常是:user / .m2 / repository / ....
  3. 转到该位置。并删除存储库文件夹包含。
  4. 现在右键点击你的项目..做Maven - &gt; maven更新。
    这将解决您的依赖问题。因为Maven将尝试从存储库再次下载所有项目并构建项目。

答案 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 Boot 1.4.2.RELEASE
  • Maven 3
  • java 8

我也做了同样的事情,我的Spring STS正在识别所有类但是当我用@SpringBootApplication注释我的主类时,它不能识别这个类,而我可以看到jar在类路径中可用。

我有以下问题解决问题

  • 将我的Spring Boot 1.4.2.RELEASE替换为1.5.3.RELEASE
  • 右键点击项目 - &gt; Maven-&GT;下载资源
  • 右键点击项目 - &gt; Maven-&GT;更新项目

之后它起作用了。

谢谢

答案 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)

尝试一下,它可能也对您有用。

  1. 打开命令提示符,然后转到项目文件夹。
  2. 构建项目(对于Maven,请运行 mvn全新安装
  3. 成功构建后,
    • 在任何IDE(智能/ eclipse)上打开项目。
    • 在已打开IDE的情况下重新启动它。

这对我在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项目。