在Capistrano的3個文檔(http://capistranorb.com/documentation/advanced-features/remote-file/)提供了一個例子來說明如何這個任務(remote_file)的作品remote_file Capistrano的3方法
namespace :deploy do
namespace :check do
task :linked_files => 'config/newrelic.yml'
end
end
remote_file 'config/newrelic.yml' => '/tmp/newrelic.yml', roles: :app
file '/tmp/newrelic.yml' do |t|
sh "curl -o #{t.name} https://rpm.newrelic.com/accounts/xx/newrelic.yml"
end
他們告訴它允許遠程文件的存在被設定爲先決條件。 Hovewer我仍然無法知道它是如何工作的,因爲remote_file在任務代碼之外調用。它實際上做了什麼?有人可以解釋嗎?
如果config/newrelic.yml不存在,會發生什麼情況,以及如何將remote_file調用與 進行連接:linked_files任務?
除了爲什麼給定任務名稱/tmp/newrelic.yml並且看起來像文件路徑之外,它似乎很明顯嗎?給定文件的內容是否包含任務代碼? – antiplayer 2015-02-18 10:52:33
您需要閱讀rake文件任務,這是remote_file使用的任務。文件任務是特殊的,因爲他們希望命名文件的路徑來工作。這是一個很好的博客文章解釋它http://madewithenvy.com/ecosystem/articles/2013/rake-file-tasks/ – davekaro 2015-02-25 17:02:00
Thanx澄清! – antiplayer 2015-03-03 20:58:40