我正在Jenkins构建中的this gemfile上运行bundle install --no-cache --path ./vendor/bundle
。然后我使用widdershins将我的OpenAPI规范文档转换为与平板兼容的格式。我遇到的问题是 widdershins
无法找到middleman-cli
宝石。
...
Compiling main.dot to function
Compiling operation.dot to function
Compiling translations.dot to function
/usr/lib/ruby/2.3.0/rubygems.rb:241:in `bin_path': can't find gem middleman-cli (>= 0.a) (Gem::GemNotFoundException)
from ./vendor/bundle/ruby/2.3.0/bin/middleman:22:in `<main>
所以我试图通过以下2个命令验证gem是否安装,并且根本没有看到middleman
安装。这让我想知道为什么它没有安装所需的依赖...
ruby -S gem list --local
ruby -e 'puts Gem::Specification.all_names'
两个命令都显示相同的输出:
bigdecimal (1.2.8)
bundler (1.15.1)
did_you_mean (1.0.0)
io-console (0.4.5)
json (1.8.3)
minitest (5.10.3)
molinillo (0.5.0)
net-http-persistent (2.9.4)
net-telnet (0.1.1)
power_assert (0.2.7)
psych (2.1.0)
rake (12.0.0)
rdoc (4.2.1)
test-unit (3.2.5)
thor (0.19.4)
要给出运行这些命令的范围的一些上下文,这里是我Jenkins文件的一个片段:
// generate API documentation
sh 'git clone https://github.com/lord/slate.git'
dir('slate'){
sh 'ls -ao'
sh 'cat Gemfile.lock | grep middleman'
sh 'bundle install --no-cache --path ./vendor/bundle'
sh "ruby -S gem list --local"
sh "ruby -e 'puts Gem::Specification.all_names'"
}