✨✨个人主页:沫洺的主页
📚📚系列专栏: 📖 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是模块名称,中间用逗号