Я настраиваю сервер eureka и клиент eureka для микросервисов весенней загрузки. Версия весенней загрузки — 3.3.0-SNAPSHOT весна-облако.версия - 2023.0.0 Ява - 17
Когда я добавляю аннотацию @EnableEurekaClient в основной класс, он не может найти аннотацию.
Получение этой ошибки- Java: не могу найти символ символ: класс EnableEurekaClient
Я попробовал обе следующие зависимости:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-eureka-client</artifactId>
</dependency>
Полный файл 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 https://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>3.3.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.bio</groupId>
<artifactId>security</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>security</name>
<description>Security Server</description>
<properties>
<java.version>17</java.version>
<spring-cloud.version>2023.0.0</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</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>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Мое приложение.свойства
server.port=8081
spring.cloud.compatibility-verifier.enabled=false
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
Почему вы установили spring.cloud.compatibility-verifier.enabled на false? Это то, что вам никогда не следует выделять из некоторых крайне ограниченных сценариев, когда вы знаете, что версии несовместимы, и хотите, например, что-то проверить. У вас есть 'scopedTarget.eurekaClient с помпоном выше?
@OlgaMaciaszek У меня возникла эта ошибка - Spring Boot [3.3.0-SNAPSHOT] is not compatible with this Spring Cloud release train. Я также знал, что разные версии несовместимы, но в моем случае это не повлияет на другие функции проекта.
Если вы используете несовместимые версии, все может пойти не так, в том числе ошибкаscopedTarget, которую вы указали в другом ответе.
Подскажите, пожалуйста, как установить совместимые версии?
Попробуйте использовать @EnableDiscoveryClient вместо @EnableEurekaClient.
Однако @EnableEurekaClient аннотация больше не требуется. Простое добавление spring-cloud-starter-netflix-eureka-client к зависимостям активирует клиент. https://github.com/spring-cloud/spring-cloud-netflix/issues/4022#issuecomment-915991198
Спасибо за ответ, но возникла еще одна ошибка: ошибка создания bean-компонента с именем 'scopedTarget.eurekaClient', определенным в ресурсе пути к классу.
Это должно быть связано с какими-то другими проблемами. Можете ли вы поделиться всем своим pom-файлом?
Вот ссылка Github на мой pom-файл.
Ссылка недоступна. Возможно, из-за разрешений.
Пожалуйста, проверьте pom.xml, добавленный в вопрос.
Использование <artifactId>spring-boot-starter-web</artifactId> вместо <artifactId>spring-boot-starter</artifactId> может решить проблему.
Спасибо @Shanan, это изменение сработало.
Пожалуйста, добавьте полный pom.xml