用批处理来自动化项目编译及部署(附Demo)

简介: 原文:用批处理来自动化项目编译及部署(附Demo)阅读目录 介绍 详细 处理 结论 Demo下载   介绍   一个项目从立项开始,可能就已经根据公司的配置模板将目录,文档结构定义出来。
原文: 用批处理来自动化项目编译及部署(附Demo)

阅读目录

 

介绍

  一个项目从立项开始,可能就已经根据公司的配置模板将目录,文档结构定义出来。有动态库,也有静态库,在没有专门的CMO的时候,往往组长,若干开发人员承担版本发布的工作。次工作即枯燥,又容易出错,那么怎么样才能将这样的工作略微自动化点。以下就通过很简单的很古老的批处理来略微自动化下。

详细

一:目录结构

  每个公司的目录结构不一样,当略有相同,比如:管理库,需求库,设计库,代码库,引用库(包库),资源库,编译模板库,编译版本库,发布版本库等。
如下图:

二:生成临时版本流程:

  一般的比较正规的是:发布人员获取所以同步,然后编译,然后将编译的release下的各个文件夹拷贝出来,做记录,放到临时版本库中。也有筒靴可能会说,自己把项目的编译生成路径改到对应的地方不就OK了,虽然可以,但有时候情况比较特殊,比如都是插件开发,把路径改了,就不好调试了,不可能每个多附加进程调试吧。
  所以我们要解决的是怎么通过批处理来进行自动化编译和将编译完成文件复制到对应目录。

三:批处理

  后缀为.bat的文件就是批处理文件。以下就对比较长用到的命令做个简单描述:

echo 和 @回显控制命令
echo off #从下一行开始关闭回显
echo on #从下一行开始打开回显

md创建目录
md abc #在当前目录里建立子目录 abc
md d:\a\b\c #如果 d:\a 不存在,将会自动创建

copy拷贝文件
copy c:\test.txt d:\复制 c:\test.txt 文件到 d:\
copy c:\test.txt d:\test.bak复制 c:\test.txt 文件到 d:\ ,并重命名为 test.bak
copy c:\*.*复制 c:\ 所有文件到当前目录,不包括隐藏文件和系统文件不指定目标路径,则默认目标路径为当前目录
copy con test.txt从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件con代表屏幕,prn代表打印机

pause暂停命令
运行该命令时,将显示下面的消息:请按任意键继续 . . .
一般用于看清楚屏幕上显示的内容

set设置变量
引用变量可在变量名前后加 % ,即 %变量名%
set #显示目前所有可用的变量,包括系统变量和自定义的变量
echo %SystemDrive% #显示系统盘盘符。系统变量可以直接引用
set p #显示所有以p开头的变量,要是一个也没有就设errorlevel=1
set p=aa1bb1aa2bb2 #设置变量p,并赋值为 = 后面的字符串,即aa1bb1aa2bb2

echo %p% #显示变量p代表的字符串,即aa1bb1aa2bb2

处理

一:模拟场景

  现建有马戏团项目(Circus),项目中有Circus工程,Cat工程,Dog工程。

Circus是用来进行表演的。Circus不引用Cat,Dog(用接口,但先不定义接口)

Cat是猫动物的表演技能。

Dog是狗动物的表演技能。

先假设输出目录中有Circus主目录,主目录下有Driver子目录,Cat和Dog的编译输出均在Driver下,并且以自己本身的名字建个目录。

二:构建项目

三:编写bat文件

设置输出路径

“debugOrRelease”这个变量是来控制是编译debug还是release
@echo off
set debugOrRelease=Release
set baseOutPath=..\09.临时版本\Circus\%debugOrRelease%
set driverOutPath=%baseOutPath%\Config
set catPath=%driverOutPath%\Cat
set dogPath=%driverOutPath%\Dog

设置输入路径

set catInPath=Cat\bin\%debugOrRelease%
set dogInPath=Dog\bin\%debugOrRelease%

打印输出路径

echo 输出路径
echo.%driverOutPath%
echo.%catPath%
echo.%dogPath%

编译

如果有多解决方案(sln)可以中间加pause,防止编译出错的信息忽略掉。

@PAUSE 
echo 开始编译 
%windir%\microsoft.net\framework\v4.0.30319\msbuild  Circus.sln /p:Configuration=%debugOrRelease% /t:Rebuild

创建驱动目录

@PAUSE
echo 开始复制
if not exist %catPath% md  %catPath%
if not exist %dogPath% md  %catPath%

复制驱动

其中用到两种方式,一种是单个文件复制,一种是文件夹复制

echo 复制Circus
xcopy %CircusInPath% %baseOutPath% /S /Y

echo 复制Cat
copy %catInPath%\Cat.dll %catPath% /Y

echo 复制Dog
xcopy %dogInPath% %dogPath% /S /Y

echo 复制完毕
@PAUSE

结论

  上述输出:

 



 


 

从上述输出的结果我们可以看出,我们预期的目的已经完成。这样即简单又自动化,降低人为带来的错误。

Demo下载

源码下载

目录
相关文章
|
1月前
|
前端开发 JavaScript jenkins
构建高效前端项目:从模块化到自动化
【2月更文挑战第13天】 随着Web技术的不断进步,前端项目的复杂性日益增加。为了确保可维护性和性能,前端工程师必须采用模块化和自动化的策略来优化开发流程。本文将探讨如何使用现代前端工具和最佳实践来构建一个高效的前端项目架构,包括模块打包、代码分割和持续集成等方面。
|
2月前
|
并行计算 Linux 计算机视觉
还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)
还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)
70 0
|
3月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
78 0
|
1月前
|
IDE Linux 编译器
【Linux】项目自动化构建工具 —— make/Makefile
【Linux】项目自动化构建工具 —— make/Makefile
|
2月前
|
IDE Linux 开发工具
【Linux】Linux项目自动化构建工具-make/Makefile
【Linux】Linux项目自动化构建工具-make/Makefile
【Linux】Linux项目自动化构建工具-make/Makefile
|
1月前
|
IDE 小程序 Linux
【linux】Linux项目自动化构建工具-make/Makefile
【linux】Linux项目自动化构建工具-make/Makefile
26 0
|
1月前
|
监控 Shell 持续交付
利用Shell脚本自动化员工电脑监管软件的部署流程
在企业管理中,对员工的电脑活动进行监管是一项重要任务。而为了实现这一目标,部署监管软件是必不可少的。本文将介绍如何利用Shell脚本来自动化部署员工电脑监管软件的流程。我们将演示如何使用Shell脚本来自动下载、安装和配置监管软件,并且在部署完成后自动启动服务。
128 4
|
1月前
|
IDE Linux 编译器
Linux项目自动化构建工具-make/Makefile
Linux项目自动化构建工具-make/Makefile
21 0
|
2月前
|
监控 Java 持续交付
内部网络监控软件的Groovy应用:持续集成与部署的自动化监控
在当今高度数字化的环境中,对于内部网络的监控变得至关重要。为了保证系统的稳定性和安全性,监控软件的自动化变得越来越必要。本文将介绍如何利用Groovy编程语言实现持续集成与部署的自动化内部网络监控软件,并通过代码示例展示其实现方式。
251 3
|
3月前
|
前端开发 jenkins 持续交付
前后端分离项目知识汇总(GateWay,Nacos配置中心,Jenkins自动化部署,项目总结)-3
前后端分离项目知识汇总(GateWay,Nacos配置中心,Jenkins自动化部署,项目总结)
63 0

热门文章

最新文章