项目架构设计与聚合项目搭建
时间:2022-07-22
本文章向大家介绍项目架构设计与聚合项目搭建,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对于传统系统的开发,系统集中与一起, 模块间的耦合度太高,一个模块升级,全部模块都需要升级,也不能进行分布式的部署。
把系统按模块拆分成多个子系统,使用接口进行通信/消息队列,降低模块之间的耦合度。同时把项目拆分为不同的模块,不同的小组可以负责不同的子项目。增加功能只有再增加一个子项目就可,可以灵活的进行分布式的部署。
|--project-parent (pom)
|--project-common (jar)
|--project-manager (pom)
|--com.project.manager.web (war)
|--com.project.manager.service (jar)
|--com.project.manager.mapper (jar)
|--com.project.manager.pojo (jar)
parent项目 主要负责jar包的版本与仓库的统一管理,整个项目都依赖与parent项目
common项目 主要负责对项目中需要的通用组件,工具进行管理
manager项目 主要用于管理整个后台项目
其他模块全部继承manager项目
在整个项目中manager为主要项目,要运行manager需要先安装其依赖的项目,就是把依赖打包为jar安装到本地。
pom、jar、war的区别
1.pom工程:用在父级工程或聚合工程中。用来做版本控制。
2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。
3.jar工程:将会打包成jar用作jar包使用。
项目管理
首先在gitLab上创建 .gitignore文件,这样提交项目的时候就可以直接提交了,把无用的配置文件直接忽略。
touch .gitignore
##ignore this file##
/target/
.classpath
.project
.settings
提交代码之前,需先从服务器上面拉取代码,以防覆盖别人代码。
- 拉取
git pull
- 查看状态
git status
3.提交至缓存
git add + 文件
git add -u + 路径:将修改过的被跟踪代码提交缓存
git add -A + 路径: 将修改过的未被跟踪的代码提交至缓存
- 提交到本地仓库
git commit -m “注释部分 ref T3070”
5.推送到服务器
git push
svn
1、将文件checkout到本地
svn checkout path(path是服务器的目录)
例如 :svn checkout svn://192.168.1.1/pro/domain
2、往版本库中添加新的文件
svn add filename
例如:svn add test.cpp
3、将改动的文件提交到版本库
svn commit -m "注释" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关)
例如:svn commit -m "注释" test.cpp
简写:svn ci
4、加锁/解锁
svn lock -m "注释" path
例如: svn lock -m "注释" test.cpp
svn unlock path
5、更新到某个版本
svn update -r 版本号 path
svn update 更新当前目录以及子目录下的所有文件到最新版本
svn upate -r 200 test.cpp 将版本库中的test.cpp还原到版本200
简写 svn up
- OpenStack:建立虚拟的渗透测试实验环境 – 网络篇
- Kettle 添加对应hadoop版本的支持
- Layui常用方法
- 使用Identity Server 4建立Authorization Server (4)
- 使用Identity Server 4建立Authorization Server (3)
- 使用Identity Server 4建立Authorization Server (2)
- 使用Identity Server 4建立Authorization Server (1)
- Java之异常处理
- 挖洞经验 | 看我如何利用SAML漏洞实现Uber内部聊天系统未授权登录
- 使用ichartjs生成图表
- 使用angular4和asp.net core 2 web api做个练习项目(四)
- list.add(),向List集合插入对象报空指针异常
- 使用angular4和asp.net core 2 web api做个练习项目(三)
- 即学即用系列一:纯函数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java面试高频知识点汇总 垃圾回收(GC)机制专题
- Celery-分布式任务队列学习笔记
- Java面试高频知识点汇总 数据库专题
- Java面试高频知识点总结 Redis
- Java面试高频知识点总结 Spring
- 杂谈小程序
- pytest封神之路第四步 内置和自定义marker
- (译)SDL编程入门(3)事件驱动编程
- 一个简单的Angular search UI实现
- (译)SDL编程入门(2)在屏幕上显示图像
- 【Vue进阶】手把手教你在 Vue 中使用 JSX
- (译)SDL编程入门(1)Hello SDL
- Django使用Channels实现websocket
- (译)SDL编程入门(6)扩展库SDL_image
- 牛客网剑指offer-2