Ответ 1
измените версию spring родителя загрузки
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
Я установил проект загрузки spring, используя Spring Initializer, я несколько раз пытался создать новый проект или сыграть с зависимостями все кажется на месте.
Я использую 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>
Я использую Java 1.8 с STS.
измените версию spring родителя загрузки
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
Правая кнопка в проекте → Maven → Обновить проект
затем установите флажок "Принудительное обновление снимков/выпусков"
Из вашего pom.xml попытайтесь удалить записи репозитория spring, по умолчанию будет загружаться из репозитория maven. Я пробовал с 1.5.6.RELEASE и работал очень хорошо.
Если следующий шаг не работает:
Заменен мой Spring Загрузка 1.4.2.RELEASE в 1.5.10.RELEASE
Причиной этой ошибки может быть несколько версий одного и того же файла, загруженного в папку вашего локального хранилища maven.
Итак, выполните следующие шаги, чтобы очистить все существующие банки репозитория и загрузить все из начала на основе зависимостей, определенных в вашем POM.xml..
В моем проекте обновлена зависимость от spring-boot-starter-parent с 2.0.0.release до 2.0.5.relese. Это решило проблему. Импорт org.springframework.boot.SpringApplication не может быть решен.
У меня была такая же проблема, когда я пытался работать с базовым загрузочным приложением spring. Я попытался использовать последнюю версию spring -boot из официального spring -boot site.
Как и сегодня, последняя версия 1.5.4.RELEASE. Но я продолжаю получать проблемы с компиляцией на своей eclipse IDE независимо от нескольких действий по очистке проекта. Я опустил версию spring -boot до 1.5.3.RELEASE, и она просто сработала! Некоторые из моих предыдущих проектов использовали старую версию, которая заставила меня попробовать эту опцию.
Я столкнулся с той же проблемой во время моего первого приложения загрузки Spring.
В учебнике я мог видеть следующую зависимость для запуска образца приложения
Я сделал то же самое, мой Spring STS распознает весь класс, но когда я комментирую свой основной класс с помощью @SpringBootApplication, он не распознает этот класс, тогда как я мог видеть, что jar был доступен в пути класса.
У меня есть решение проблем
После этого он работал.
Спасибо
Когда вы запускаете приложение как банку, ваш файл Manifest.MF
должен знать, какой класс имеет основной метод.
Чтобы добавить эту информацию, когда SpringBoot скомпилирует ваш код, добавьте свойство start-class
в ваш файл pom.
например:.
<properties>
<start-class>com.example.DemoApplication</start-class>
</properties>
Возможно, есть проблема с файлами JAR в локальном репозитории Maven. Попробуйте удалить папку .m2/repository и нажмите Maven → Обновить проект... еще раз, чтобы Maven снова загрузил зависимости. Я попробовал это, и это сработало для меня.
Нет необходимости удалять относительный путь. Просто измените версию родительской загрузки 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>
Мой работал, добавив
<!-- 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>
вместо того, чтобы напрямую использовать другие основные зависимости, я понятия не имею, почему.
Решение - изменить версию Spring в файле pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
Попробуйте, это может сработать и для вас.
Это работало для меня как на v1.5, так и на v2.1
Этот ответ может быть не по теме для большинства читателей. В моем случае зависимость не обновлялась, и "mvn clean" не работал, так как моя сеть Wi-Fi в офисе очень защищена, оставляя "тайм-аут соединения". (то же самое уважение GitHub толкает и не работает) Я просто перешел на обучение с моим телефоном, и это работает. Глупо, не по теме для большинства, но это может помочь в некоторых очень специфических случаях.
Удалите папку репозитория из "C:\Users\usename.m2" и создайте заново или обновите проект maven.