Rake 自动加载 Gemspec

Rake autoloading Gemspec

我想知道,rake 任务会自动加载 .gemspec 吗?我问是因为我 运行 一个自动构建我的 gem 的 rake 任务,其中一部分是加载文件并打印出消息。

我应该看到:

Loading external libraries for rake_tasks

相反,我看到了:

Loading external libraries for gemspec

消息很简单:

puts "Loading external libaries for #{$Loading_for}"

$loading_for 的设置取决于文件加载请求的来源,例如rake_tasks、gem规范、可执行文件、应用程序。

尽管我在 rake 任务中设置了 $loading_for`:

$Loading_for = :rake_tasks

正在打印:

Loading external libaries for gemspec

问题是为什么要加载 gemspec?我没有从我的 rakefile 中的任何地方加载它。

此外,另一个奇怪的是,每当我这样做时 rake -h 我都会收到一个奇怪的警告:

WARN: Unresolved specs during Gem::Specification.reset:
      rack-test (>= 0)

这很奇怪,因为我有:

spec.add_development_dependency "rack-test", "0.6.3"

在我的gem规范中

p.s。我知道 libaries 的拼写错误,已修复。

Rake 只是 ruby 代码,所以除非您没有使用其他 gem 以某种方式操纵简单的 rake 命令。你不应该加载 gemsec 文件!

我在 github 上的 rake 存储库中搜索了这个 $global 变量,但一无所获。 here

如果您认为自己正在做的事情可能会影响您的自然 ruby 代码,请更新问题。