Dubbo学习笔记 二:使用Gradle构建多module项目


项目地址:
https://github.com/FateSolo/Dubbo-Test

目录:

在本章将用Gradle重新构建多module项目Dubbo-Test,以展示和Maven的区别。

1. 项目创建:

1) 创建名为Dubbo-Test的文件夹并进入:

1
mkdir Dubbo-Test && cd Dubbo-Test

2) 创建Gradle Wrapper,但不是必需的:

1
gradle wrapper

2. 创建parent module:

1) 创建build.gradle:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
subprojects {

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

apply plugin: 'java'

repositories {
mavenCentral()
}

dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}

}

2) 创建settings.gradle:

1
rootProject.name = 'dubbo-parent'

3. 创建其余module:

1) 创建dubbo-api:

1
2
3
mkdir dubbo-api && cd dubbo-api
mkdir -p src/{main,test}/{java,resources}
touch build.gradle

2) 创建dubbo-server:

1
2
3
mkdir dubbo-server && cd dubbo-server
mkdir -p src/{main,test}/{java,resources}
touch build.gradle

并修改build.gradle:

1
2
3
dependencies {
compile project(':dubbo-api')
}

3) 创建dubbo-client:

1
2
3
mkdir dubbo-client && cd dubbo-client
mkdir -p src/{main,test}/{java,resources} src/main/webapp
touch build.gradle

并修改build.gradle:

1
2
3
4
5
apply plugin: 'war'

dependencies {
compile project(':dubbo-server')
}

4) 修改settings.gradle,增加如下代码:

1
include 'dubbo-api', 'dubbo-server', 'dubbo-client'

4. 测试多module项目

1) 在dubbo-api中创建子包com.fatesolo.dubbo.api,创建实例类TestApi:

1
2
3
4
5
6
7
8
9
package com.fatesolo.dubbo.api;

public class TestApi {

public String testAPi() {
return "api";
}

}

2) 在dubbo-server中创建子包com.fatesolo.dubbo.server,创建实例类TestServer:

1
2
3
4
5
6
7
8
9
10
11
12
package com.fatesolo.dubbo.server;

import com.fatesolo.dubbo.api.TestApi;

public class TestServer {

public String testServer() {
TestApi api = new TestApi();
return "server " + api.testAPi();
}

}

3) 在dubbo-client中创建index.jsp:

1
2
3
4
5
6
7
8
9
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.fatesolo.dubbo.server.TestServer" %>
<!DOCTYPE html>
<html>
<body>
<% TestServer server = new TestServer(); %>
<h2><%=server.testServer()%></h2>
</body>
</html>

4) 进入到Dubbo-Test文件夹,键入命令:

1
gradle build

查看各个module,可以看到都已经生成了各自的包,其中dubbo-client-1.0-SNAPSHOT.war包的lib中已经包含了dubbo-api和dubbo-server的jar包。

5) 将dubbo-client-1.0-SNAPSHOT.war部署到Tomcat,运行并访问http://localhost:8080/dubbo-client-1.0-SNAPSHOT ,得到如下结果:

1
server api


作者 [@FateSolo]
2017 年 05月 25日