✨✨个人主页:沫洺的主页
📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏
📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏
📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏
💖💖如果文章对你有所帮助请留下三连✨✨
新建SpringBoot项目(父项目scm)
下一步
完成
修改pom.xml
"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.0modelVersion> <parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.7.4version> <relativePath/> parent> <groupId>com.mominggroupId> <artifactId>scmartifactId> <version>14-SNAPSHOTversion> <packaging>pompackaging> <properties> <java.version>1.8java.version> properties> <build> build> project>接下来在父项目下创建子项目
修改scm-authority/pom.xml
"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.0modelVersion> <parent> <groupId>com.mominggroupId> <artifactId>scmartifactId> <version>14-SNAPSHOTversion> <relativePath>../pom.xmlrelativePath> parent> <artifactId>scm-authorityartifactId> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> <optional>trueoptional> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-testartifactId> <scope>testscope> dependency> dependencies> <build> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> exclude> excludes> configuration> plugin> plugins> build> project>
同理创建其他子项目scm-api、scm-app、scm-core、scm-dao、scm-dto、scm-entity、scm-service等步骤一致
最后修改父模块的pom.xml
"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.0modelVersion> <parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.7.4version> <relativePath/> parent> <groupId>com.mominggroupId> <artifactId>scm-rootartifactId> <version>0.0.1-SNAPSHOTversion> <packaging>pompackaging> <properties> <java.version>1.8java.version> properties> <modules> <module>scm-authoritymodule> <module>scm-appmodule> <module>scm-daomodule> <module>scm-dtomodule> <module>scm-entitymodule> <module>scm-servicemodule> <module>scm-apimodule> <module>scm-coremodule> modules> <dependencyManagement> <dependencies> dependencies> dependencyManagement> <build> <pluginManagement> pluginManagement> build> 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添加配置
<plugin> <groupId>org.apache.maven.pluginsgroupId> <artifactId>maven-deploy-pluginartifactId> <configuration> <skip>trueskip> 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是模块名称,中间用逗号