2011-03-11 47 views
2

我希望能够在Windows 7上创建rakefile,我可以用rake -g <taskname>rake --system <taskname>命令调用。我在哪里保存rakefile?我已经尝试在我的用户目录(c:\ users \ me \ rake)下创建一个Rake目录,但是当我拨打rake -g hello_world时,耙出错误说它不知道如何构建:hello_world任务,这让我觉得它只是看不到rakefile。这里是我的全球Rake文件是什么样子:如何在Windows 7上创建全局rakefile?

require 'rake' 

desc "a hello world task"  
task :hello_world do  
    puts "hello from your global rakefile"  
end 
+0

如果它不知道如何构建任务,那就意味着rake会看到rakefile。所以告诉我们你的rakefile – 2011-03-11 21:52:59

回答

3

想通了 - 原来耙预计全球rakefiles在一个结束“.rake”扩展名。我改变了上面的例子这样:

require 'rake' 

desc "a hello world task"  
task :hello_world do  
    puts "hello from {__FILE__}"  
end 

并将其保存为我的C“testing.rake”:\用户\我\耙\目录。我打开一个命令提示符随机目录并运行“耙-g程序hello_world”,得到了这样的输出:在Windows

C:\Windows\system32>rake -g hello_world 
(in C:/Windows/system32) 
hello from C:/Users/me/Rake/testing.rake 
1

耙寻找Rake文件在当前目录中,除非明确的规定:

rake --rakefile C:\users\me\rake\[rakefile] 
+0

是的,但我对全局选项感兴趣。在Mac或任何* nix系统上,可以使用“rake -g”在rakefiles中的用户文件夹中名为“.rake”的目录中执行命令。我可以得到这个在Mac上工作,但我似乎无法让它在Windows机器上工作。 – dalesmithtx 2011-03-13 01:25:27

+0

你在使用什么版本的ruby/rake?同样在你的问题中,你说你创建了一个“rake”文件夹,而不是“.rake”文件夹。 – tilleryj 2011-03-13 17:01:29

+0

红宝石1.9.2p180。我已经尝试了“rake”和“.rake”文件夹,并将rakefile直接放在我的用户文件夹中。这三种方法都没有奏效。 – dalesmithtx 2011-03-13 19:19:51

0

耙寻找$ HOME /耙/ *耙如果目标无法在本地找到。 。如果没有设置HOME,那么它将使用c:\​​ Users \ me \ Rake,如其他响应者指示的那样。但是,如果您碰巧拥有HOME设置(就像我在混合的Cygwin/Windows 7世界中操作一样),现在您知道耙子会在哪里找到您的全局耙文件。

顺便说一句,我不觉得有必要通过-g标志; Rake似乎很高兴自己找到全球定义。我认为-g是唯一的情况是,如果你需要确保本地没有相同名称的rake任务。