Я новичок в Java, поэтому заранее извиняюсь, если не понимаю некоторых слов.
У меня все еще возникает ошибка: не удается разрешить символ @EnableEurekaServer ... Когда я вручную ввожу строку импорта для сервера eureka, слово «облако» выделяется красным цветом:
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
В моем файле build.gradle у меня есть
compile('org.springframework.cloud:spring-cloud-netflix-eureka-server')
Почему так ... Все вроде как должно работать. Я могу предоставить скриншоты вещей, если меня попросят!
Мой файл build.gradle выглядит так:
buildscript {
ext {
springBootVersion = '2.0.0.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.cloud:spring-cloud-netflix-eureka-server')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
Мой EurekaApplicationServer.java выглядит так:
package com.example.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
public class EurekaApplicationServer {
public static void main(String[] args) {
SpringApplication.run(EurekaApplicationServer.class, args);
}
}
Думаю, я добавил достаточно информации. Хотел бы немного помочь
Изменение зависимости от compile('org.springframework.cloud:spring-cloud-netflix-eureka-server:1.0.0.RELEASE') решает проблему для меня.
Хорошо ... Это сработало. Иисус Христос. Большое спасибо, чувак. Это тоже было очень простое решение. Но есть ли причина, по которой он это делает? Мне нравится понимать, почему что-то пошло не так.
Используйте зависимость с конкретной версией, текущая версия на момент написания:
compile('org.springframework.cloud:spring-cloud-netflix-eureka-server:1.4.3.RELEASE')
Вы можете найти последнюю доступную версию под номером здесь.
Для проектов Spring Boot, когда вы не указываете версию зависимости, используется специальный плагин управление зависимостями. По какой-то причине он не может предоставить версию для этой конкретной зависимости. Смотрите связанный вопрос.
Ах, я вижу, я вижу! спасибо за объяснение. Не могли бы вы проверить это изображение и посмотреть, сможете ли вы понять, почему я получаю эту ошибку: imgur.com/a/5Dafv
Опускать версию eureka-server / client не нужно. Причина в том, что репозиторий maven не может разрешить последнюю версию сервера eureka. Чтобы решить эту проблему, добавьте репозиторий в свой файл pom / gradle.
repositories {
maven {
url 'https://repo.spring.io/libs-milestone'
}
}
или же
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-eureka-server</artifactId>
<version>1.1.6.RELEASE</version>
</dependency>
У меня это сработало.
Поделитесь пожалуйста Минимальный, полный и проверяемый пример.