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

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

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

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

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

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

🥘父子项目搭建

新建SpringBoot项目(父项目scm)

下一步

 完成

 修改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"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.4</version>
        <relativePath/>
    </parent>
    <groupId>com.moming</groupId>
    <artifactId>scm</artifactId>
    <!--版本号可自定义-->
    <version>14-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <build>

    </build>

</project>

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

修改scm-authority/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"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.moming</groupId>
        <artifactId>scm</artifactId>
        <version>14-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
  
    <artifactId>scm-authority</artifactId>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

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

最后修改父模块的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"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.4</version>
        <relativePath/>
    </parent>
    <groupId>com.moming</groupId>
    <artifactId>scm-root</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <modules>
        <module>scm-authority</module>
        <module>scm-app</module>
        <module>scm-dao</module>
        <module>scm-dto</module>
        <module>scm-entity</module>
        <module>scm-service</module>
        <module>scm-api</module>
        <module>scm-core</module>
    </modules>

    <dependencyManagement>
        <dependencies>

        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>

        </pluginManagement>
    </build>

</project>

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

补充

<version>0.0.1-SNAPSHOT</version>这里的版本号可以自定义

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

 比如父模块用的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添加配置

           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </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是模块名称,中间用逗号

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沫洺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值