如何在gemspec文件中指定依赖gem的路径?

2024-03-10

我创建了一个 gem(X) 但它没有发布。现在我正在创建另一个 gem,它将添加 gem X 作为依赖项,如下所示:-

s.add_dependency "X"

在 gemspec 文件中。

由于 gem(X) 不在 ruby​​gem 或 git 或 ruby​​forge 上,因此捆绑安装命令会抛出错误:

找不到宝石 X**

我认为指定 X 的路径就可以解决问题,但是如何呢?


我想我明白了 @bor1s 在关于 git 引用的 SO 帖子中所指的内容。

The gemspec文件是关于发布 gem 的依赖项。你的Gemfile设置本地开发环境,通常通过调用gemspec.

在你的情况下你的gemspec应该有这个

s.add_dependency "X"

然后你的Gemfile看起来像这样(确保本地引用位于gemspec call):

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

引自 Yahuda Katz 的关于 gemspec 和 Bundler 的博客文章 http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/

如果您发现需要针对尚未发布的 gem 进行开发(例如,Rails 经常针对未发布的 Rack、Arel 或 Mail gem 进行开发),您可以在 Gemfile 中添加单独的行,告诉捆绑器在哪里可以找到宝石。它仍然会使用 .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。这些信息纯粹是开发时用来搭建完整环境的东西,需要一定的精度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在gemspec文件中指定依赖gem的路径? 的相关文章

随机推荐

  • 从 pdf 中提取的细化表格 - Tabulizer

    我正在 R 中的 Tabulizer 的帮助下从 PDF 中提取一些表格 下面是其中一个表格的代码 library tabulizer location lt http napic jpph gov my portal web guest
  • 将消息从一个 Kafka 主题复制到另一个 Kafka 主题

    我想从生产集群中的 Kafka 集群 主题进入开发环境中的另一个 Kafka 集群 以进行可扩展性和回归测试 对于鸭磁带解决方案 我级联了 Kafka 消费者和生产者 但我的直觉告诉我应该有更好的方法 但是 我还没有找到任何好的解决方案 谁
  • 将 jQuery Validation 插件中的验证方法与“or”而不是“and”结合起来

    在 jQuery 验证插件中 有几个方法可以执行相同的操作 但针对不同的区域设置 例如dateISO and dateDE 两者都验证日期格式 如何组合这些以便输入元素接受either 假设我有一个
  • 如何使用 app.config 上的加密连接字符串与 Windows 窗体上的向导生成的 Dataset.xsd

    我正在开发一个 MDI 应用程序Visual Studio 2013 NET 4 5 and Oracle 开发工具最新发布 我需要创建一个主窗体 然后它将成为许多不同窗体的容器 每个窗体都是不同的应用程序 该应用程序必须连接到不同的 Or
  • 我应该在 Django 项目中使用 Celery 还是 Carrot?

    我有点困惑我应该使用哪一个 我认为两者都可以 但其中一个比另一个更好或更合适吗 http github com ask carrot tree master http github com ask carrot tree master ht
  • CSS :lang 伪类与属性选择器

    我想编写一个 css 规则 该规则将使用不同的引号来表示不同语言的引号 我知道lang是一个HTML属性 那么为什么我不能使用下面的css属性选择器呢 下面的代码不应该针对所有q and blockqutote元素内部的元素lang属性具有
  • Tensorflow:如何将自定义输入插入现有图形?

    我已经下载了一个实现 VGG16 ConvNet 的张量流 GraphDef 我用它来执行以下操作 Pl images tf placeholder tf float32 None 448 448 3 name images batch x
  • 如何将 Func 转换为 Predicate

    是的 我见过this https stackoverflow com questions 665494 c why funct bool instead of predicatet但我找不到我的具体问题的答案 给定一个 lambda测试La
  • 会话cookie=cookie?

    我想知道 cookie 和会话 cookie 是否相同 饼干就是饼干 会话 cookie 可以指以下两种情况之一 未指定超时时间的 cookie 浏览器关闭后将被丢弃 IE 浏览器只会为当前的 浏览会话 保留它 包含会话 ID 的 cook
  • Log4Net 多个项目

    我在用log4net在我们的解决方案之一中 该解决方案包含多个项目 每个项目一个单元测试项目 我正在使用中描述的方法这个帖子 http blog falafel com Blogs josh eastburn 2012 04 10 usin
  • Mathematica 中的语法着色

    用户定义的函数符号如f in f x 2 x 或变量符号 例如lotto in lotto Table 2 10 自动着色 在 M8 上的语法着色中 没有为此提供选项 仅限未分配值的局部变量或全局符号 这并不完全是您所要求的 但可能对您有用
  • Apache POI 使用 HSSF 比使用 XSSF 快得多 - 接下来做什么?

    我在解析时遇到了一些问题 xlsx带有 Apache POI 的文件 我得到java lang OutOfMemoryError Java heap space在我部署的应用程序中 我只处理 5MB 以下的文件和大约 70 000 行 因此
  • Silverlight 中的动画边距变化

    我正在 Silverlight 中对边框大小进行动画调整 但是我还需要逐渐删除其周围的边距 当前为 50 Blend 似乎不会为边距变化生成补间 它只是一次性从 50 跳到 0 有办法实现这一点吗 问题是边距实际上是 System Wind
  • 普罗米修斯时间序列在没有更新的情况下持续多长时间

    如果我向 Prometheus 发送一个仪表 则有效负载具有时间戳和如下值 指标名称 标签 值 2 0 16239938546837 如果我在普罗米修斯上查询它 我可以看到一条连续的线 如果不发送相同指标的有效负载 线路就会停止 几分钟后发
  • 从Firebase android获取孩子ID [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 Android 开发非常陌生 我正在使用 Firebase 开发一个 Android 应用程序来获取一个人的姓名和地址 我的数据
  • 如何在 javascript 中将日期时间字符串的格式从使用斜杠改为使用连字符?

    我有一个以下格式的输入日期字符串 yyyy mm dd 这是我想要的输出日期字符串格式 yyyy mm dd Javascript 有内置的方法可以做到这一点吗 Use 字符串替换 https developer mozilla org e
  • 如何使用 Javascript Date 对象计算东部时间?

    我正在开发一个涉及 Javascript 的个人项目 作为该项目的一部分 我想获取当前日期 包括时间 并相应地显示它 没什么大不了的吧 嗯 deal是我想返回时间和日期东部夏令时间 无论 IP 在世界哪个地方 如果这是不可能的 您建议采用哪
  • C# 多屏幕视图单一表单

    我用 C 创建了一个 GUI 它应该如下所示 主屏幕上有两个按钮 当Button1被单击我不想使用打开新表单form2 show 但在保持相同形式的同时 我想更改显示 我通过隐藏 GUI 元素并根据需要显示其他元素来完成此操作 它按照我想要
  • 如何重命名项目中的 Rails 控制器和模型

    我启动了一个 Rails 应用程序 一切正常 但现在 我想重命名控制器和关联的模型 我想改变Corps控制器到Stores模型也相同 没有最后的 s 在谷歌上查看 人们建议销毁然后重新生成控制器和模型 问题是它会删除每个文件的实际代码 解决
  • 如何在gemspec文件中指定依赖gem的路径?

    我创建了一个 gem X 但它没有发布 现在我正在创建另一个 gem 它将添加 gem X 作为依赖项 如下所示 s add dependency X 在 gemspec 文件中 由于 gem X 不在 ruby gem 或 git 或 r