项目初始化

商品服务、仓储服务、订单服务、优惠券服务、用户服务
共同点:

  1. 依赖 spring web、openfeign
  2. 服务包名:com.ht.mall
  3. 模块名:
    • 优惠券服务:mall-coupon
    • 用户服务:mall-member
    • 订单服务:mall-order
    • 商品服务:mall-product
    • 仓储服务:mall-ware

多模块开发

多模块开发中,使用父模块对子模块的管理非常方便。

  1. 父模块pom中的<_properties>_属性会被子模块继承
  2. 父模块pom中,在<_dependencyManagement>_中可以进行子模块依赖的版本管理,子模块继承父模块之后,提供作用:锁定版本 + 子模块不用再写 version。
  3. 此外,父模块中可以添加依赖作为全局依赖,子模块自动继承。<_dependencyManagement>外的<_dependencies_>_中定义全局依赖。

    目录结构:

    image.png

    父pom文件

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0</modelVersion>
    5. <groupId>com.mall</groupId>
    6. <artifactId>guli-mall</artifactId>
    7. <version>0.0.1-SNAPSHOT</version>
    8. <packaging>pom</packaging>
    9. <modules>
    10. <module>mall-coupon</module>
    11. <module>mall-member</module>
    12. <module>mall-order</module>
    13. <module>mall-product</module>
    14. <module>mall-ware</module>
    15. </modules>
    16. <name>guli-mall</name>
    17. <description>parent</description>
    18. <!-- 这里的属性会被子模块继承 -->
    19. <properties>
    20. <java.version>1.8</java.version>
    21. <spring.boot.version>2.4.3</spring.boot.version>
    22. <spring-cloud.version>2020.0.1</spring-cloud.version>
    23. </properties>
    24. <dependencyManagement>
    25. <dependencies>
    26. <dependency>
    27. <groupId>org.springframework.boot</groupId>
    28. <artifactId>spring-boot-dependencies</artifactId>
    29. <version>${spring.boot.version}</version>
    30. <type>pom</type>
    31. <scope>import</scope>
    32. </dependency>
    33. <dependency>
    34. <groupId>org.springframework.cloud</groupId>
    35. <artifactId>spring-cloud-dependencies</artifactId>
    36. <version>${spring-cloud.version}</version>
    37. <type>pom</type>
    38. <scope>import</scope>
    39. </dependency>
    40. </dependencies>
    41. </dependencyManagement>
    42. <!-- 这里的依赖会被子模块继承 -->
    43. <dependencies>
    44. <dependency>
    45. <groupId>org.springframework.boot</groupId>
    46. <artifactId>spring-boot-starter-web</artifactId>
    47. </dependency>
    48. <dependency>
    49. <groupId>org.springframework.cloud</groupId>
    50. <artifactId>spring-cloud-starter-openfeign</artifactId>
    51. </dependency>
    52. <dependency>
    53. <groupId>org.springframework.boot</groupId>
    54. <artifactId>spring-boot-starter-test</artifactId>
    55. <scope>test</scope>
    56. </dependency>
    57. </dependencies>
    58. </project>

    子pom示例

    ```xml <?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

    1. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    1. <groupId>com.mall</groupId>
    2. <artifactId>guli-mall</artifactId>
    3. <version>0.0.1-SNAPSHOT</version>

    com.mall mall-product 0.0.1-SNAPSHOT mall-product

    商品服务 org.springframework.boot spring-boot-maven-plugin

```