Не удается импортировать зависимости Spring Cloud для включения клиента Eureka

#spring-cloud #spring-cloud-netflix

Вопрос:

введите описание изображения здесьЯ работаю над приложением, в котором пытаюсь зарегистрировать клиент Eureka на сервере, но застрял на первом шаге, где мне нужна зависимость, которая позволяет включить аннотацию @EnableEurekaClient.

  1. Я последовал за облаком.весна.инструкции ввода-вывода, которые не сработали:
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-eureka</artifactId>
     </dependency>
     

II) Затем я нашел какой-то последний стек и попробовал (как показано ниже), который также не работал:

 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  </dependency>
 

Интересно, как все папки внезапно исчезнут, если я помещу вышеуказанную зависимость в pom.xml (Я использую Intellij)

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>2.5.3</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.eurekaproject.learn</groupId>
<artifactId>microservice-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>microservice-app</name>
<description>Demo project for Spring Boot</description>
<properties>
    <java.version>11</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </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>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
   </build>
</project>
 

приложение.yml

 spring:
  application:
    name: microservice-app
datasource:
url: jdbc:mysql://localhost:3306/microservice-app
username: root
password: 12345
jpa:
hibernate:
  ddl-auto: none

server:
 port: 8092

eureka:
  client:
   service-url:
    defaultZone: http://localhost:8081/eureka

info:
 app:
   name: ${spring.application.name}
 

Ответ №1:

Вам необходимо добавить спецификацию Spring Cloud в свою pom.xml следующим образом:

 <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2020.0.3</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
 

Как только это будет добавлено, все зависимости Spring Cloud, включая spring-cloud-starter-netflix-eureka-client , разрешатся, и вы сможете использовать такие аннотации, как @EnableDiscoveryClient для активации клиента обнаружения Eureka.

Комментарии:

1. Это кажется работой, но не приносит никакой зависимости, я прикрепляю экран к вашему сведению.

2. Пожалуйста, обратите внимание, что spring-cloud-starter-netflix-eureka-client зависимость должна быть указана за пределами dependencyManagement раздела. Просто добавьте spring-cloud-starter-netflix-eureka-client вместе с другими вашими зависимостями.