1.概述
之前老是出现idea建springCloud的maven父子工程失败,特此写下经验和教训。
springboot版本:2.2.1
2.不多逼逼,图文教程直接来
-
新建maven空工程
事先准备好一个空文件夹
**选择刚才建好的空文件夹,不是空的不可以**
2.新建maven父工程
不用勾选,不需要模板,父工程作用主要是管理依赖
接下来删出掉建好的父工程 src 文件,没有用,删完之后是这样的
一定要右击建好的父工程建立module
利用Sping Initializr创建SpringBoot项目
引入Eureka Server,用于创建服务注册中心
建好之后之这样的
2.依赖的配置
思路:因为都是springboot项目,都要依赖springboot,所以将父工程的依赖改为springboot的,
其他子工程中公用的依赖都可以放入父工程,包括插件,配置
父工程依赖配置,大部分来自子工程:
<?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>parents</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<!--子模块工厂配置-->
<modules>
<module>server</module>
<module>register</module>
<module>feign</module>
</modules>
<!--Spring Boot配置-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/>
</parent>
<!--配置参数-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.RC2</spring-cloud.version>
</properties>
<dependencies>
<!--Spring Boot Web组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Spring Boot 测试组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--Spring Cloud 服务注册组件-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
<!--Spring Cloud 版本序列配置-->
<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>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
子工程依赖:
<?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>com.example</groupId>
<artifactId>parents</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>server</name>
<description>Demo project for Spring Boot</description>
<!--子模块的个性化依赖-->
<dependencies>
</dependencies>
</project>
启动类添加注解 @EnableEurekaServer
。标识这是一个服务注册中心
package com.example.server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
3.修改配置文件
# 端口号
server:
port: 8761
# 服务注册相关配置
eureka:
# 服务实例主机名
instance:
hostname: localhost
# 服务提供者配置
client:
# 不进行注册,本身是注册中心
registerWithEureka: false
# 不获取注册信息
fetchRegistry: false
# 服务注册中心地址
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
4,运行项目