| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
9年前发布

简洁的自动化任务构建工具

简介

Build是一个使用GO语言编写的自动化任务构建工具,可根据描述配置执行任务。类似于JavaScript中的Grunt与Gulp工具,但更加简单,不需要编写复杂的逻辑代码。

简单示例

以下例子描述了当web目录(/path/web)下任意.go文件发生变化时,自动执行名为build的任务,即切换到web目录下执行”go build”命令。

variable:      web: "/path/web"  task:      build:          - "cd ${web} && go build"  watch:      ${web}/*.go: "${build}"

介绍

Build使用YAML格式的配置文件来描述任务,分为变量(variable),任务(task),监控(watch)三个字段。

变量(variable)

变量定义了需要在任务或监控字段中可替换的字符串,变量中也可引用其他变量。

任务(task)

任务是按顺序执行的Shell命令,或引用的其他任务。若在引用的任务名前加#,表示该任务是非阻塞的,Build不会等待该任务完成,而是继续执行后面的任务。

监控(watch)

当任意文件发生变化时,执行任务中定义的任务,其中可以引用变量。

复杂示例

定义了两个变量,其中path1是/a/b,path2则是/a/b/c

定义了三个任务,其中default是默认任务,build命令会执行该任务,而build develop与build commit命令则分别执行develop与commit任务。default任务中,会并发执行develop与commit任务

定义了一个监控,当/a/b/c/*.go文件发生变化时,执行develop任务

variable:      path1: "/a/b"      path2: "${path1}/c"  task:      default:          - "${#develop}"          - "${commit}"      develop:          - "cd ${path1} && go build"          - "${path1}/program"      commit:          - "cd ${path1} && git push origin"  watch:      ${path1}/*.go: "${develop}"

使用命令

build [-c build.yml] [-s] [-k] [task name] 

-c指定配置文件目录,若不指定,则使用当前目录的build.yml

-s指定在执行任务时,不输出日志

-k指定在监控到文件变化后,不清空输出的日志

最后指定任务名称,若不指定将执行default任务

源码

https://github.com/InkProject/build.go

Clone代码后,使用go build build.go命令编译,获得名为build的可执行文件

来自:http://www.inkpaper.io/blog/post/2015/05/17/golang-build-tool.html

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1443260582919.html
自动化 项目构建