目录
1.动机
2.过程
3.适用项目类型
4.使用方式
5.使用到的技能点
1.动机
增量更新Java Web项目版本时,需要比较版本更新文件,并去targer目录下找到对应的文件,
这个过程很麻烦,并在实践中出过多次错误,为了避免这些麻烦和错误,
遂需要一个脚本来自动化该过程。
2.过程
基本过程:通过git diff
遍历出版本改变的文件,并修改文件对应到target目录下,然后打包所有的更新文件。
- 0.定义一个临时文件名,加如时间戳标识;如需要保留来写更新日志,则注释掉最后的删除命令
- 1.定义需要手动配置的路径。主要是运行时的路径与代码diff路径,准备替换
- 2.gitdiff文件改动。如果不需要临时文件,可以合并第23两步
- 3.遍历更新文件,按1设置的路径,替换掉需要修改文件路径,如java文件的路径,以及java-class转换
- 4.所有行前面加上targetPath
- 5.找到所有的文件,zip命令压缩称一个文件
- 6.删除临时文件
3.适用项目类型
Java Web
4.使用方式
1 | # 注意:脚本执行的路径与target的相对路径 |
最终shell脚本如下:
1 | #!/bin/bash |
5.使用到的技能点
1.git diff 比较出发生变化的文件
2.sed 命令 替换所有文件中的pattern
1 | sed -e "s/pattern/toString/g" fileName |
sed 替换命令无法处理含/
路径的字符串的问题,代替的方式如下
1 | sed -e "s:patternHasSlash:toStringHasSlash:g" fileName |
3.|
管道,数据流作为下一个命令的参数
4.zip 打包命令
5.shell 脚本换行,行尾使用 \
,然后 Enter
- 本文作者: Linking
- 本文链接: https://linking.fun/2019/05/14/git-diff-and-zip-to-patch/
- 版权声明: 版权所有,转载请注明出处!