首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不支持warbler Gemfile路径选项

不支持warbler Gemfile路径选项
EN

Stack Overflow用户
提问于 2012-04-01 01:18:29
回答 2查看 501关注 0票数 3

对于Gemfile中不支持路径选项的warbler,是否有推荐的解决方法?path不受支持(我不能直接实现它)有什么根本原因吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-02 20:48:06

路径选项不可移植。Bundler希望能够在该路径中找到代码,这在某种程度上违背了自包含war文件的目的。

一种解决方法是在基于路径的gem目录中运行"git init;git commit -a“,并将其视为基于git的gem。然后,Bundler可以签出代码的副本,Warbler可以将副本存储在war文件中。

票数 2
EN

Stack Overflow用户

发布于 2012-07-19 00:11:48

我(很遗憾)还不能为此发布代码,但我已经成功地完成了以下工作:

  1. Hack warbler (基本上替换了整个bundler gem打包代码),将用:path指定的gem复制到vendor/gems中(正常gem位置是gems/gems)。这种复制几乎与warbler从specification.
  2. Monkeypatch捆绑包中复制vendor/gems.

的方式相同,因此当它加载带有:git规范的Gemfile时,它们将被重写以指向gem

这不是很好,但我对这个解决方案非常满意。

我看到的另一个选择是创建一个vendor/gems目录,其中包含指向所有在gem文件中使用:path的gem的符号链接。Warbler会抱怨不支持:path gem,但它们会通过符号链接复制到WAR文件中。我不喜欢这个解决方案,因为您必须在Gemfile和symlink中维护:path,但它比上面的实现更容易实现。

此外,我同意Nick Siger的观点,即支持:path原样(没有上述任何技巧)确实违背了自包含WAR文件的目的,但自包含WAR文件并不总是可取的。当然,对于非自包含的WAR文件也有一些折衷,但一个优点是更小,更快地复制,解压缩等。当然,要支持这一点,需要对JRuby-Rack和Warbler进行更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9958010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档