本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Maven构建父子工程详细流程
1)构建项目 order 父工程
在IDEA 中新建maven 项目 order ,order分为 order-client、order-webapp两个子Module项目,父工程为 order, 子module为 order-client、order-webapp
先创建 order
定义groupId、artiactId
定义项目路径信息
打开项目结构
删除src目录,在pom文件中新增 打包类型 pom
2)新建子Module order-client
删除完 src后, 我们右键项目,新建module
依旧选择 maven项目 ,next
新建order-client
配置项目路径
可以看到 order-client中已经有个 parent
修改 order-client的pom文件, 定义 version及 打包类型
<?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">
<parent>
<artifactId>order</artifactId>
<groupId>com.jzj.order</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<artifactId>order-client</artifactId>
</project>
我们都知道微服务构建的时候, 需要 服务提供方提供接口, 比如 A服务 调用 B微服务, B微服务就要提供接口, 我们现在规范 把接口全都写入 client打成jar包 ,在A服务的 项目中引入, 这样就能满足A服务的调用 现在我们把order-client当作 Jar包 来打包, 用作充当第三方 B微服务调用的 jar 需要操作
- 删除 resources
- 删除 test
- 在 java 源代码路径下面新建 IOrderRpcService 用于 定义第三方RPC交互的接口, 该接口就是 你在A服务中 调用B服务的接口逻辑
com.jzj.order.client 接口 IOrderRpcService
package com.jzj.order.client;
/**
* 当前描述: order rpc 接口信息
*
* @author: jiazijie
* @since: 2021/2/10 上午11:35
*/
public interface IOrderRpcService {
String getOrderInfo(Integer orderId);
}
3)新建子Module order-webapp
依然是项目右键 新建 module order-webapp 就是业务的实现业务层
配置order-webapp目录
查看结果, order-webapp 的pom中有父依赖 parent, order的 pom 中有子module order-webapp
有时候 如果你看到 web-app中的 src/java 不是蓝色的、src/resources 不是resources 带标记的
你可以自行设置下就OK了 ,具体可以点击右键,设置 sourceRoot 源目录信息
java设置Sources Root 代码, resources设置ResourcesRoot 资源
这样我们就新建了maven的 父子多module项目
我们可以看一下目录结构, 目录下面既有
- order-client 提供给第三方的 jar包 文件
- order-webapp 提供给自己服务的业务包, 就是web实现
- 还可以类似添加其他的 app包, 用来实现其他业务分层处理
这样完整的 父子工程就创建出来了,谢谢