版本控制
2022-07-30 21:07:28 0 举报
AI智能生成
maven 等版本总结
作者其他创作
大纲/内容
maven
基础
初级使用
maven安装
下载maven
解压maven
设置环境变量MAVEN_HOME=xxxxxx;path=;%MAVEN_HOME%\bin;
有的系统使用M2=xxxxxx; path=;%M2_HOME%\bin;
命令行echo %M2_HOME%或echo %MAVEN_HOME%检查路径是否正确
mvn -version 检测环境是否配置
mvn项目的存放目录
src\main\java放源文件
src\main\resources存放资源文件
src\test\java放测试文件
src\test\resources放测试资源文件
target存放打包的文件和测试相关文件
POM(project object model,项目对象模型)
本地默认maven仓库
C:\Users\mocha\.m2\repository
修改maven仓库路径
修改setting.xml
<localRepository>D:\1-maven_repository</localRepository>
坐标
G : groupId
com.lisa.health.data
A : artifactId
health-data-pom
V : version
0.0.1-SNAPSHOT
总版本号.分支版本号.小版本号-里程碑版本号
总版本号:一般指框架中有大变动
分支版本号:增加了一些功能
小版本号:在分支版本号基础上修复了一些bug
里程碑版本号
snapshot(开发未测试)
alpha(内测版本)
beta(公测版本)
release(稳定版)
ga(generally available)用户可放心使用版本
依赖关系
把一个项目拆分模块,多人开发
按业务拆分
用户模块
账单模块
支付模块
按开发模块拆分
user-core
user-service
user-dao
依赖范围
Service依赖于dao,dao依赖于core。service对core是传递性依赖。
compile
传递性依赖的范围和第一直接依赖的范围一致
编译依赖范围。对编译、测试、运行都有效。
test
依赖不会传递
只对测试有效
provided
只传递第一依赖范围也为provided的依赖,传递依赖范围也是provided
对编译和测试有效
打war包时,不会打包
runtime
传递性依赖的范围与第一直接依赖的范围一致
只对运行有效
system
跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。
聚合
maven pom项目
maven module项目
pom常见元素
modelVersion:当前pom版本
groupId:反写的公司网址+项目名
artifactId:项目名+模块名
version
snapshot快照
alpha内部测试
beta公测
Release稳定版本
GA正式发布
packaging
jar(默认)
war
zip
pom
name:项目描述名
url:项目地址
description:项目描述
developers:开发人员列表
licsence许可证
dependencies
dependency
groupId
artifactId
version
type
scop
optional:设置依赖是否可选
true
false(默认)
exclusions:排除依赖传递列表
exclusion
dependencyManagement:依赖管理,定义在父模块供子模块继承
dependencies
build:为构建行为提供支持
plugins:插件列表
plugin
parent:继承父模块
modules:指定多个模块一起编译
module
maven读取变量属性(${} )
私有仓库
类型
Hosted
Releases
Snapshot
3rd party
中央仓库里的没有包
一般指我们内部开发,只对内网,可以上传
Virtual
proxy
central
中央仓库下载的包全部放到此下
apache snapshots
apache专属存储
codehaus snapshots
codehaus专属存储
group
将多个工厂分成组
方便操作
场景分析
配置私有仓库
只考虑自己的当前项目,不考虑其他项目
考虑当前项目,又考虑以后开发情况
注意:不要配置maven安装目录下的setting.xml
配置镜像
所有开发人员通过我设置的地址访问仓库
配置在settings的Mirror节点
D:\maven\apache-maven-3.1.0\apache-maven-3.1.0\lib\maven-model-builder-3.1.0.jar
修改jar包内\org\apache\maven\model\pom-4.0.0.xml
便于维护工厂
一种约定
发布项目到私有仓库
POM设置
授权
为自己的项目搭建专属性仓库
生命周期
完整的项目构建过程
清理-编译-测试-打包-集成测试-验证-部署
maven中定义三套独立的生命周期
clean清理项目
pre-clean执行清理前的工作
clean清理上一次构建生成的所有文件
post-clean执行清理后的文件
default构建项目(核心)
compile
test
package
install
site生成项目站点
pre-size生成项目站点前要完成的工作
site生成项目的站点文档
post-site在生成项目站点后要完成的工作
site-deploy发布站点到服务器上
插件
jetty插件
sql插件
maven source plugin插件
源码打包插件
不用插件,用这个命令也一样clean source:jar
maven-compiler-plugin插件
改变编译环境
区分开发环境和生产环境
maven-rar-plugin插件
将项目打包成rar
maven-war-plugin
mav-surefire-plugin插件
测试一些不是符合规范的测试类
建议还是按规范编写
测试覆盖率
corbertura-maven-plugin插件
部署项目
手动发布web项目
cargo
Tomcat本地部署
Tomcat远程部署
Maven打包:去掉项目版本号
svn
集中式版本控制
git
创建版本库
git init
时光穿梭机
版本回退
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
工作区和暂存区
工作区(Working Directory)
就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区
就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区
版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
管理修改
撤销修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销
用命令git reset HEAD 可以把暂存区的修改撤销掉(unstage),重新放回工作区:
删除文件
一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
远程仓库
添加远程库
git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master
从远程库克隆
git clone git@github.com:michaelliao/gitskills.git
分支管理
创建和合并分支
解决冲突
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
git log --graph --pretty=oneline --abbrev-commit
分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
git merge --no-ff -m "merge with no-ff" dev
bug分支
管理过程
git stash
git stash list
Feature分支
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D强行删除。
如果要丢弃一个没有被合并过的分支,可以通过git branch -D
多人协作
多人协作的工作模式
Rebase
标签管理
创建标签
git tag -a v0.1 -m "version 0.1 released" 1094adb
操作标签
Jenkins
持续集成
docker
概述
docker出现的思想来自于集装箱
技术核心
隔离
docker 的核心思想,每个箱子都是互相隔离的。
docker 通过隔离的思想,将服务器运用到机制。
镜像
Docker历史
Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。
比较Docker和虚拟机技术的不同
传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响
Docker:打包镜像发布测试一键运行。
更便捷的升级和扩缩容
更简单的系统运维
更高效的计算资源利用
入门
Docker的基本组成
镜像(image)
容器(container)
仓库(repository)
Docker常用命令及参数
常用命令查询
Docker镜像命令
Docker镜像检索
镜像下载
镜像列表
删除镜像
Docker容器命令
容器基本操作
容器列表
查看运行和停止状态
停止和启动容器
停止容器
启动容器
端口映射
删除容器
容器日志
登录容器
底层原理
Docker是怎么工作的?
为什么Docker比Vm快
父主题
0 条评论
下一页