对于传统系统的开发,系统集中与一起, 模块间的耦合度太高,一个模块升级,全部模块都需要升级,也不能进行分布式的部署。
把系统按模块拆分成多个子系统,使用接口进行通信/消息队列,降低模块之间的耦合度。同时把项目拆分为不同的模块,不同的小组可以负责不同的子项目。增加功能只有再增加一个子项目就可,可以灵活的进行分布式的部署。
代码语言:javascript复制|--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文件,这样提交项目的时候就可以直接提交了,把无用的配置文件直接忽略。
代码语言:javascript复制touch .gitignore
##ignore this file##
/target/
.classpath
.project
.settings
提交代码之前,需先从服务器上面拉取代码,以防覆盖别人代码。
- 拉取
git pull
- 查看状态
git status
3.提交至缓存
代码语言:javascript复制git add 文件
git add -u 路径:将修改过的被跟踪代码提交缓存
git add -A 路径: 将修改过的未被跟踪的代码提交至缓存
- 提交到本地仓库
git commit -m “注释部分 ref T3070”
5.推送到服务器
代码语言:javascript复制git push
svn
1、将文件checkout到本地
代码语言:javascript复制svn checkout path(path是服务器的目录)
例如 :svn checkout svn://192.168.1.1/pro/domain
2、往版本库中添加新的文件
代码语言:javascript复制svn add filename
例如:svn add test.cpp
3、将改动的文件提交到版本库
代码语言:javascript复制svn commit -m "注释" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关)
例如:svn commit -m "注释" test.cpp
简写:svn ci
4、加锁/解锁
代码语言:javascript复制svn lock -m "注释" path
例如: svn lock -m "注释" test.cpp
代码语言:javascript复制svn unlock path
5、更新到某个版本
代码语言:javascript复制svn update -r 版本号 path
svn update 更新当前目录以及子目录下的所有文件到最新版本
svn upate -r 200 test.cpp 将版本库中的test.cpp还原到版本200
简写 svn up