使用JRuby Scripting Container从本地目录加载Gems

时间:2014-12-11 09:55:33

标签: environment-variables jruby gemset

我正在尝试加载gems以从本地目录执行ruby代码。我不希望ScriptingContainer(JRuby)对象使用系统的默认gemsets。

使用

清空环境变量
container.setEnvironment(env);

一个空的Map来改变GEM_HOME和GEM_PATH,但它仍然是系统的gemset。

我如何避免这种情况?

2 个答案:

答案 0 :(得分:1)

在构建Puck时,我们遇到了类似的问题,Puck是一个将JRuby应用程序捆绑为自包含Jar文件的工具。为了获得一个没有被RubyGems和Bundler设置的所有东西污染的干净环境,你真的需要花一些时间。这里有一个解决问题的Puck请求:https://github.com/iconara/puck/pull/7,重要的部分在DependencyResolver类中,它涉及启动一个单独的ScriptingContainer并跳过一些箍。

我希望您不需要所有这些来解决您的问题,但根据您想要做的事情,重置环境会非常困难。

答案 1 :(得分:0)

尝试将GEM_HOME / GEM_PATH设置为本地目录路径