• [SpringBoot] 父子项目搭建,过滤多模块发布到私仓


    ✨✨个人主页:沫洺的主页

    📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 

                               📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                               📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏     

    💖💖如果文章对你有所帮助请留下三连✨✨

    🥘父子项目搭建

    新建SpringBoot项目(父项目scm)

    下一步

     完成

     修改pom.xml

    1. "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.0modelVersion>
    5. <parent>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-parentartifactId>
    8. <version>2.7.4version>
    9. <relativePath/>
    10. parent>
    11. <groupId>com.mominggroupId>
    12. <artifactId>scmartifactId>
    13. <version>14-SNAPSHOTversion>
    14. <packaging>pompackaging>
    15. <properties>
    16. <java.version>1.8java.version>
    17. properties>
    18. <build>
    19. build>
    20. project>

    接下来在父项目下创建子项目

    修改scm-authority/pom.xml

    1. "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.0modelVersion>
    5. <parent>
    6. <groupId>com.mominggroupId>
    7. <artifactId>scmartifactId>
    8. <version>14-SNAPSHOTversion>
    9. <relativePath>../pom.xmlrelativePath>
    10. parent>
    11. <artifactId>scm-authorityartifactId>
    12. <dependencies>
    13. <dependency>
    14. <groupId>org.springframework.bootgroupId>
    15. <artifactId>spring-boot-starter-webartifactId>
    16. dependency>
    17. <dependency>
    18. <groupId>org.projectlombokgroupId>
    19. <artifactId>lombokartifactId>
    20. <optional>trueoptional>
    21. dependency>
    22. <dependency>
    23. <groupId>org.springframework.bootgroupId>
    24. <artifactId>spring-boot-starter-testartifactId>
    25. <scope>testscope>
    26. dependency>
    27. dependencies>
    28. <build>
    29. <plugins>
    30. <plugin>
    31. <groupId>org.springframework.bootgroupId>
    32. <artifactId>spring-boot-maven-pluginartifactId>
    33. <configuration>
    34. <excludes>
    35. <exclude>
    36. <groupId>org.projectlombokgroupId>
    37. <artifactId>lombokartifactId>
    38. exclude>
    39. excludes>
    40. configuration>
    41. plugin>
    42. plugins>
    43. build>
    44. project>

    同理创建其他子项目scm-api、scm-app、scm-core、scm-dao、scm-dto、scm-entity、scm-service等步骤一致

    最后修改父模块的pom.xml

    1. "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.0modelVersion>
    5. <parent>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-parentartifactId>
    8. <version>2.7.4version>
    9. <relativePath/>
    10. parent>
    11. <groupId>com.mominggroupId>
    12. <artifactId>scm-rootartifactId>
    13. <version>0.0.1-SNAPSHOTversion>
    14. <packaging>pompackaging>
    15. <properties>
    16. <java.version>1.8java.version>
    17. properties>
    18. <modules>
    19. <module>scm-authoritymodule>
    20. <module>scm-appmodule>
    21. <module>scm-daomodule>
    22. <module>scm-dtomodule>
    23. <module>scm-entitymodule>
    24. <module>scm-servicemodule>
    25. <module>scm-apimodule>
    26. <module>scm-coremodule>
    27. modules>
    28. <dependencyManagement>
    29. <dependencies>
    30. dependencies>
    31. dependencyManagement>
    32. <build>
    33. <pluginManagement>
    34. pluginManagement>
    35. build>
    36. project>

    以上就是父子项目搭建的基本步骤

    补充

    0.0.1-SNAPSHOT这里的版本号可以自定义

    子模块继承的版本号要与父模块的版本号保持一致

     比如父模块用的14-SNAPSHOT,所有子模块都是14-SNAPSHOT

    🍣子模块补充

    既然是多模块结构,那么子模块中有些东西是不需要的,这里做一些修改,将除了scm-app模块的,其他模块src包下的单元测试test、java包下的启动类、pom.xml里的dependency依赖、plugins插件都删掉,其他就看个人需求进行修改了,只需要保留一个启动类就行

    各个模块的大概作用:

    scm-api

    • 暴露的接口

     scm-app

    • 项目的启动模块,包括controller,aop,advice等

    scm-authority

    • 组件模块,比如一些自定义的starter

    scm-core

    • 基础工具模块,放一些核心工具类

    scm-dao

    • 数据访问模块,放一些dao或者mapper

    scm-dto

    • 暴露的对象,和外部打交道的对象

    scm-entity

    • 内部的,和数据库打交道的对象

    scm-service

    • 业务处理模块,进行主要的逻辑处理

    🍱多模块发布到私仓

    打开阿里的云效控制台,创建企业私仓

    阿里云

    注册账号登录,在创建企业时需要实名认证,可按照要求进行支付包授权认证,比较快

     打开制品仓库/Maven仓库/非生产库-snapshot

    选择仓库指南/Maven方式/推送(覆盖方式)

    下载settings.xml

     将settings.xml放到C:\Users\ASUS\.m2下(ASUS或者Administrator)或者IDEA配置的maven下conf/settings.xml

    与IDEA中maven配置对应

    c盘默认或者maven文件夹中

     IDEA打开Terminal

     输入以下指令,上传项目到私仓

    mvn clean  deploy -DskipTests

    如果发布某一个子模块,那就cd 到对应的文件夹下 执行 mvn clean  deploy -DskipTests

    如下所示 

    执行该指令之后,可以看到项目已经上传到库中

     点击一个可以查看该模块的信息,包括依赖

    当然也可以使用maven插件,比较方便,但是不跳过测试会比较慢

    🍛过滤多模块发布到私仓

    子模块跳过deploy

    子模块pom.xml添加配置

    1. <plugin>
    2. <groupId>org.apache.maven.pluginsgroupId>
    3. <artifactId>maven-deploy-pluginartifactId>
    4. <configuration>
    5. <skip>trueskip>
    6. configuration>
    7. plugin>

    在上传父子项目时,有些子项目不需要上传即可通过此配置跳过上传(比如scm-dao,scm-entity)

    忽略递归子模块,只发布父项目

    mvn clean package deploy -N -DskipTests

    只发布具体子模块

    mvn clean package deploy -DskipTests -pl scm-api,scm-dto

    其中 scm-api,scm-dto是模块名称,中间用逗号

  • 相关阅读:
    spark学习记录-spark基础概念
    Google单元测试sample分析(一)
    Docker入门指南:基于 docker 搭建机器学习/深度学习开发环境
    ubuntu 20.04 + Anaconda + cuda-11.8 + opencv-4.8.0(cuda)
    SpringCloud-GetWay 路由网关
    【收藏系列】多线程八股文总结
    数据治理:数据质量篇
    Windows下 MySql 5.7授权远程登陆
    《向量数据库指南》——向量数据库一些技术难点
    力扣45-跳跃游戏2——贪心算法&顺藤摸瓜&顺瓜摸藤
  • 原文地址:https://blog.csdn.net/HeyVIrBbox/article/details/127588827