0

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

我应该看到:

Loading external libraries for rake_tasks

相反,我看到:

Loading external libraries for gemspec

消息很简单:

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

$loading_for根据文件加载请求的来源进行设置,例如 rake_tasks、gemspec、可执行文件、应用程序。

即使我在 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"

在我的宝石规范中。

ps 我知道 的拼写错误libaries,这已得到修复。

4

1 回答 1

0

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

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

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

于 2015-05-12T15:24:06.540 回答