使用 JRuby 脚本容器从本地目录加载 Gem



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

使用 清空环境变量

container.setEnvironment(env);

一个空的地图来更改GEM_HOME和GEM_PATH但它仍然占用系统的宝石集。

如何避免这种情况?

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

我希望你不需要所有这些来解决你的问题,但根据你想做什么,重置环境是非常困难的。

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

相关内容

  • 没有找到相关文章

最新更新