项目架构设计与聚合项目搭建
时间: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
- 华中农业大学第五届程序设计大赛网络同步赛题解
- Java构造方法与析构方法实例剖析
- 5.训练模型之利用训练的模型识别物体
- KMP算法学习(详解)
- 查找算法的实现(C/C++实现)
- HDU 1495 非常可乐(数论,BFS)
- Selenium2+python自动化74-jquery定位
- 用php实现简单的自制计算器
- Selenium2+python自动化75-Chrome配置加载
- Selenium2+python自动化75-非input文件上传(SendKeys)
- python接口自动化11-post传data参数案例
- POJ 1321 棋盘问题(DFS板子题,简单搜索练习)
- python接口自动化12-案例分析(csrfToken)
- Python基础学习笔记
- 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 数组属性和方法
- Python_字典实现简单预约系统
- java_二维数组简单快递系统
- RabbitMQ六种工作模式
- Java生成随机姓名、性别和年龄
- 商业数据分析从入门到入职(8)Python模块、文件IO和面向对象
- 7.13论坛常见问题以及解决办法
- 移植SDL到JZ2440显示BMP图片
- Vue图片验证码-自定义组件高级版
- Angular页面调试一个有用的小技巧 - normalizeDebugBindingName和normalizeDebugBindingValue
- 19个JS超有用的简写技巧
- 【教程】移植web server到Ubuntu就是这么简单!
- 为什么采用Proxy重构响应系统 | Vue3源码系列
- 制作Linux嵌入式系统开机LOGO(图片)
- R语言奇淫巧技之pdftools包
- 14个Spring MVC超实用技巧!