Maven构建父子工程详细流程

146 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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 需要操作

  1. 删除 resources
  2. 删除 test
  3. 在 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包, 用来实现其他业务分层处理

这样完整的 父子工程就创建出来了,谢谢