亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

寫一個漂亮Rakefile的方法

2019-10-26 19:23:06
字體:
來源:轉載
供稿:網友

Rake 我就不再介紹了,Ruby 的 Make ,許多方面都比 Make 要更好用一些。和 Makefile 不同的是,Rakefile 本身其實就是一段 Ruby 代碼,這樣的好處有很多,一方面在 Rake 里面就可以很直接地做任何 Ruby 能做的事了,另一方面由于 Ruby 對 DSL 支持良好,所以 Rakefile 通??雌饋硪膊⒉荒敲础按a”。

不過,代碼始終是代碼,Makefile 尚且可以寫得很亂,Rakefile 要寫亂就更容易了,幸運地是,Rake 提供了一些功能讓我們可以來對 Rakefile 做一些組織工作。

其中之一就是 import 功能,把不同功能的 task 寫到不同的文件中,例如,像這個樣子:
代碼如下:
Rakefile
task/
  +-- doc.rake
  +-- compile.rake
  `-- deploy.rake
這樣,在 Rakefile 里寫上
代碼如下:
import("task/doc.rake")
這樣的語句導入各個子任務即可,不同的任務寫到不同的文件里面就不會一團糟了。而且,import 同 Ruby 自己的 require 不一樣,import 并不是立即進行導入的,而是在整個 Rakefile 執行結束之后才全部導入,因此,可以在任意的地方寫 import ,而不用擔心依賴關系,需要共享的變量之類的只要在主 Rakefile 中定義了即可。

import 是組織不同的功能模塊,除此之外,Rake 還允許我們對一些重復性的任務進行抽象,具體來說,就是自定義的 task 。通常情況下,我們使用 Rake 提供的通用 task 和文件 task 來構造我們需要完成的工作,除此之外,Rake 還自帶了一些針對特殊任務的 task 類型,例如構建 rdoc 或者運行 test 等。實際上,一種任務就是一個普通的 Ruby 類,我們可以繼承 Rake 里的 Task 類并重新定義相關的函數來實現自定義的 task 類型。不過,這樣多少有些麻煩,實際上,很多時候我們要定義的任務都可以分解為一些小任務用內置的通用 task 和 file task 來實現的,這個時候可以用 Tasklib 來更方便地定義自定義的任務。

具體地來說,就是寫一個類,繼承自 Tasklib (雖然實際上只是約定而并不是必須的),然后在這個類的初始化函數里用 task 或者 file 來定義實際完成任務的子 task 即可。用一個實際的例子來說,比如說,我們可以定義一個 ErlcTask ,可以用來把一些 Erlang 文件編譯到某個目錄下,并在 clean 的時候自動能把編譯出來的 .beam 文件清理掉:
代碼如下:
require 'rake'
require 'rake/clean'
require 'rake/tasklib'

class ErlcTask < Rake::TaskLib
  attr_accessor :name
  attr_accessor :sources
  attr_accessor :dest_dir
  attr_accessor :include_path
  attr_accessor :flags
  attr_accessor :extra_dep

  def initialize(name = :erlc)
    # default values
    if name.is_a? Hash
      @name = name.keys.first

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本久久久久亚洲中字幕| 精品视频在线播放色网色视频| 日韩男女性生活视频| 日韩成人性视频| 国产日韩中文字幕| 97人人爽人人喊人人模波多| 久久久精品视频在线观看| 欧美性受xxxx黑人猛交| 久久人人爽人人爽人人片av高清| 综合久久五月天| 国产91精品久久久久久| 日韩福利在线播放| 黄色91在线观看| 欧美日韩免费观看中文| 96sao精品视频在线观看| 欧美另类69精品久久久久9999| 日韩欧美在线免费| 中文字幕精品久久| 精品国产精品自拍| 国产成人精品久久久| 日韩精品在线电影| 九九热这里只有精品免费看| 亚洲免费一级电影| 精品国产91久久久久久老师| 成人www视频在线观看| 久久男人的天堂| 国产精品久久久久aaaa九色| 欧美日韩国产中文精品字幕自在自线| 一本色道久久综合亚洲精品小说| 国产成人午夜视频网址| 日韩av影片在线观看| 国产视频久久网| 中文字幕一精品亚洲无线一区| 精品国偷自产在线视频99| 国产香蕉一区二区三区在线视频| 91高清视频免费观看| 国产精品羞羞答答| 亚洲成人动漫在线播放| 国产视频精品xxxx| 在线看片第一页欧美| 国产精品久久久久久久久久ktv| 欧美午夜久久久| 精品国产1区2区| 色综合天天狠天天透天天伊人| 日韩精品一二三四区| 视频一区视频二区国产精品| 最近免费中文字幕视频2019| 久久久av亚洲男天堂| 欧美孕妇孕交黑巨大网站| 高清欧美性猛交| 亚洲第一色在线| 国产日韩欧美综合| 久久夜色精品国产亚洲aⅴ| 亚洲第一区中文99精品| 亚洲最大在线视频| 亚洲欧美综合图区| 成人精品一区二区三区电影免费| 日韩在线播放视频| 国产精品视频区| 国产精品三级久久久久久电影| 热99精品里视频精品| 中文字幕日韩精品在线观看| 久久久噜噜噜久久中文字免| 日韩国产激情在线| 亚洲xxxx妇黄裸体| 久久久久亚洲精品| 日韩亚洲国产中文字幕| 中文字幕亚洲第一| 亚洲热线99精品视频| 91免费看片网站| 在线播放日韩精品| 91精品国产综合久久香蕉922| 久久国产精品久久久久久| 欧美日韩国产精品一区二区三区四区| 国产精品视频在线播放| 亚洲图片欧美午夜| 亚洲成人久久网| 成人午夜小视频| 精品久久香蕉国产线看观看gif| 亚洲福利视频网| 91精品视频在线免费观看| 亚洲a∨日韩av高清在线观看| 亚洲国产美女久久久久| 亚洲欧美制服中文字幕| 国产欧美精品久久久| 亚洲欧美成人精品| 在线视频欧美日韩精品| 欧美精品中文字幕一区| 亚洲电影免费观看高清完整版在线观看| 国产91网红主播在线观看| 亚洲视频一区二区| 国产一区二区三区免费视频| 日韩成人小视频| 国产成人鲁鲁免费视频a| 成人福利免费观看| 欧美日韩国产一区中文午夜| 国产美女精品视频| 久久精品久久久久久国产 免费| 黄色精品在线看| 日韩在线观看免费全集电视剧网站| 2024亚洲男人天堂| 在线精品国产成人综合| 亚洲精品国产成人| 国产亚洲在线播放| 神马久久久久久| 精品中文字幕视频| 国产欧美一区二区白浆黑人| 精品久久久久久中文字幕一区奶水| 日韩在线观看免费全| 欧美激情在线观看视频| 日韩美女写真福利在线观看| 亚洲成成品网站| www.日本久久久久com.| 欧美视频在线观看免费网址| 国产香蕉97碰碰久久人人| 91国内免费在线视频| 国产亚洲精品综合一区91| 国产在线观看不卡| 亚洲欧美激情四射在线日| 亚洲欧美国内爽妇网| 欧美重口另类videos人妖| 亚洲精品一二区| 日韩美女写真福利在线观看| 国产精品午夜一区二区欲梦| 欧美亚洲免费电影| 色偷偷88888欧美精品久久久| 欧美亚洲成人网| 色偷偷噜噜噜亚洲男人的天堂| 国产久一一精品| 国产成一区二区| 97涩涩爰在线观看亚洲| 91免费高清视频| 亲爱的老师9免费观看全集电视剧| 久久久久久尹人网香蕉| y97精品国产97久久久久久| 一本一本久久a久久精品综合小说| 国产精品私拍pans大尺度在线| 欧美一级黑人aaaaaaa做受| 亚洲人成电影网站色…| 深夜福利国产精品| 久久成人国产精品| 欧美在线xxx| 亚洲精品自拍第一页| 欧美一级视频在线观看| 综合av色偷偷网| 欧亚精品在线观看| 综合激情国产一区| 成人高清视频观看www| 一区二区三区日韩在线| 国产精品极品美女粉嫩高清在线| 久久久久成人精品| 亚洲欧美在线一区| www.日韩视频| 亚洲色图35p| 亚洲第一精品自拍| 国产脚交av在线一区二区| 国产精品一区av| 久久久久久久影视| 亚洲视频网站在线观看| 亚洲综合色激情五月| 亚洲va电影大全| 日韩欧美亚洲范冰冰与中字| 欧美电影院免费观看| 午夜精品一区二区三区在线播放|