总目录


一、新建一个父级gradl模块

1.在桌面或新建文件里面,右键,打开IDEA

esplise中gradle添加微服务子项目 gradle 微服务_spring

  1. 选择Flie > NEW > Module
    选择Gradle, 选择Module SDK 1.8, 选择Java



    创建完成后,idea中会多出一个项目,如下图示例

    然后直接关闭当前idea, 进入刚才创建好的文件下,再次打开项目
    可以直接删除src目录

二、新建子级gradl模块,用于存放Eureka注册中心项目

在父级项目上右键(这一步和上一步有区别,其他都后面步骤都一样) > NEW > Module 选择Gradle, 选择Module SDK 1.8, 选择Java

esplise中gradle添加微服务子项目 gradle 微服务_ci_02

esplise中gradle添加微服务子项目 gradle 微服务_maven_03


父级项目得settings.gradle, 会自动添加include ‘shopping-order’ 说明:

1.循环此步骤即可创建多个子项目

2.或者直接复制已经创建好的子项目,粘贴到同级目录,粘贴时候,记着修改子项目名称(shopping-pay,shopping-goods等), 切记切记,还需要在父级项目中的setting.gradle中包含子项目,比如:include 'shopping-goods'


三、修改父级bulid.gradle配置

原有的bulid.gradle配置,保留group version sourceCompatibility等属性, 其他全部注释掉或者删除
如下修改后代码,粘贴完成后,点击idea的import changes或刷新gradle即可

/*plugins {
        id 'java'
    }

    group 'com.pd'
    version '1.0-SNAPSHOT'

    sourceCompatibility = 1.8

    repositories {
        mavenCentral()
    }

    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }*/


    group 'com.pd'
    version = '1.0-SNAPSHOT'
    apply plugin: 'java'
    sourceCompatibility = 1.8

    //构建Gradle脚本自身需要的资源,可以声明的资源包括依赖项、第三方插件、maven仓库地址等。
    buildscript {
        ext {
            springBootVersion = '2.0.2.RELEASE'
            springCloudVersion = 'Finchley.M8'
        }

        //设置仓库
        repositories {
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
            maven { url 'https://repo.spring.io/milestone'}
        }

        //用来打包
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        }
    }

    //配置全局, 包括root项目和子项目
    allprojects {

        //设置仓库
        repositories {
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
            maven { url 'https://repo.spring.io/milestone'}
        }

        //配置编码格式
        tasks.withType(JavaCompile) {
            options.encoding = "UTF-8"
        }
    }



四、修改子级项目的bulid.gradle配置

原有的bulid.gradle配置全部注释掉或者删除,引入空的dependencies即可

/*plugins {
    id 'java'
}

group 'com.pd'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}*/

dependencies {

}

说明:

1.子项目已经继承了父项目中配置,就不需要其他多余配置

2.子项目中空的dependencies依赖,适用于依赖各自子项目独有的依赖,如果配置子项目中公共的依赖,在父项目的subprojects.dependencies引入即可


五、新建子级项目启动项

新建java路径下的package,例如:com.pd.shopping.order

esplise中gradle添加微服务子项目 gradle 微服务_maven_04


新建子项目启动项ShoppingOrderApplication

esplise中gradle添加微服务子项目 gradle 微服务_spring_05


代码如下:

package com.pd.shopping.order;

import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;

@SpringCloudApplication
public class ShoppingOrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ShoppingOrderApplication.class, args);
    }
}



六、新建子级项目application.yml

esplise中gradle添加微服务子项目 gradle 微服务_ci_06


代码如下:

#声名服务端口号
server:
  port: 11004
#设置服务名称
spring:
  application:  # 应用名字,eureka 会根据它作为服务id
    name: shopping-order
eureka:
  client:
    #是否在注册中心注册自己
    register-with-eureka: true
    #是否从 eureka 获取注册信息
    fetch-registry: true
    #配置注册中心的url (注意:地址最后面的 /eureka/ 这个是固定值)服务注册也就依赖这个url,后续我们会用到
    service-url:
        defaultZone: http://localhost:11001/eureka

说明:

1.各个子项目的端口号不能相同

2.defaultZone注册中的地址,注册中心需要提前运行,创建注册中心可参考:


七、创建子项目具体业务文件路径(可选跳过)

此步骤可跳过,也可以在后面步骤中创建

esplise中gradle添加微服务子项目 gradle 微服务_ci_07


八、创建多个子项目说明

1.创建多个子项目重复,重复上面文章中的 二、四、五、六、七步骤,三步骤中配置一次即可

2.或者直接复制已经创建子项目,进行平级目录粘贴,并修改其中子项目名称、启动类名称即可

还手动需要在父级项目的setting.gradle中包含,例如:

esplise中gradle添加微服务子项目 gradle 微服务_spring_08


复制粘贴并且修改完成后,需要更新一下gradle

如果出现异常的启动项,可以删除,更新gradle,重新的配置子项目

esplise中gradle添加微服务子项目 gradle 微服务_maven_09


3.创建多个服务过程中,idea会自动识别出多模块,自行弹出多模块设置,这个设置可以直接忽略,但是我这建议设置

esplise中gradle添加微服务子项目 gradle 微服务_spring_10


esplise中gradle添加微服务子项目 gradle 微服务_maven_11


4.子项目整体截图

esplise中gradle添加微服务子项目 gradle 微服务_ci_12


目前将shopping项目,分成4个微服务,用户user, 商品goods, 支付pay, 订单order, 各个服务可以单独启动或单独部署,部署后续文章更新

九、启动各个服务

1.顶部导航栏,可以选择单个服务debug启动,启动成功后,切换另一个启动类,再次debug启动

esplise中gradle添加微服务子项目 gradle 微服务_spring_13


2.如果在第八步骤3中,已经设置过多模块配置,也可以在底部工具右键单个服务启动或者全部服务启动

esplise中gradle添加微服务子项目 gradle 微服务_maven_14


提前启动运行注册中心,参考:

浏览器输入:http://localhost:11001/

esplise中gradle添加微服务子项目 gradle 微服务_spring_15


看到这个页面说明,用户user, 商品goods, 支付pay, 订单order4个微服务,已经成功注册到eureka注册中心