簡體   English   中英

如何在gemspec文件中指定依賴gem的路徑?

[英]how to specify path for dependent gem in gemspec file?

我創建了一個gem(X)並且它沒有發布。 現在我正在創建另一個gem,它將添加gem X作為依賴,如下所示: -

s.add_dependency "X"

在gemspec文件中。

由於gem(X)不在rubygem或git或rubyforge上,因此bundle install命令會拋出錯誤:

找不到寶石X **

我認為指定X的路徑會起到作用,但是如何?

我想我看到了@ bor1s在SO帖子中指出的關於git引用的內容。

gemspec文件是關於發布gem的依賴項。 您的Gemfile通常通過調用gemspec Gemfile設置您的本地開發環境。

在你的情況下,你的gemspec應該有這個

s.add_dependency "X"

然后你的Gemfile看起來像這樣(確保本地引用是在gemspec調用之后):

source "http://www.rubygems.org"
gemspec
gem "X", :path => "/Users/vikram/source/X"

引自Yahuda Katz 關於gemspec和Bundler博客文章

如果您發現需要針對尚未發布的gem進行開發(例如,Rails通常針對未發布的Rack,Arel或Mail gems開發),您可以在Gemfile中添加單獨的行,告訴bundler在哪里可以找到寶石。 它仍將使用.gemspec中列出的依賴項來進行依賴項解析,但現在它確切地知道在gem開發期間在哪里找到依賴項。

source "http://www.rubygems.org"

gemspec

# if the .gemspec in this git repo doesn't match the version required by this
# gem's .gemspec, bundler will print an error
gem "rack", :git => "git://github.com/rack/rack.git"

您不希望在.gemspec中包含此信息,最終將在開發中的gem發布后將其發布到Rubygems。 同樣,這使得整個系統更具彈性,因為它不依賴於瞬態外部URL。 這些信息純粹是用於在開發期間建立完整環境的東西,這需要一些精確性。

我想你可以在這里找到你的問題的答案: 寶石依賴

希望它會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM