Rake和当前目录

dag*_*da1 27 ruby rake

如何获取rakefile.rb所在的目录?

我想用它作为我的根目录来找到所有东西.

cra*_*igb 39

使用__FILE__获取文件名,那么你可以从那里得到的目录:

test.rb

puts __FILE__
Run Code Online (Sandbox Code Playgroud)

输出:

/users/foo/test.rb
Run Code Online (Sandbox Code Playgroud)

__FILE__ 解析为它所在文件的完整路径.

使用它来获取目录名称:

File.dirname(__FILE__)
Run Code Online (Sandbox Code Playgroud)

  • 这大多是正确的,但是在Rakefile需要一些其他文件并且该文件需要知道Rakefile的位置的情况下是错误的; 在那种情况下,`Rake.application.original_dir`就是你想要的. (17认同)

Art*_*rov 23

您可以通过调用application.original_dir方法来获取它.在任务中,您可以使用任务对象上的应用程序方法来实现应用程

  • 在Rake的后期版本中我有这个是Rake.original_dir (4认同)

Gor*_*ley 7

为什么不使用Dir.pwd

  • 问题是你可能从其他目录调用rakefile,如:$ rake -f subdir/rakefile,你可能想要rakefile存在的路径,因为你可能需要其他依赖项.使用Dir.pwd将为您提供当前工作目录,但这不会是您的其他依赖项所在的位置(例如,您有jar文件) (5认同)