我正在尝试加载gems以从本地目录执行ruby代码。我不希望ScriptingContainer(JRuby)对象使用系统的默认gemsets。
使用
清空环境变量container.setEnvironment(env);
一个空的Map来改变GEM_HOME和GEM_PATH,但它仍然是系统的gemset。
我如何避免这种情况?
答案 0 :(得分:1)
在构建Puck时,我们遇到了类似的问题,Puck是一个将JRuby应用程序捆绑为自包含Jar文件的工具。为了获得一个没有被RubyGems和Bundler设置的所有东西污染的干净环境,你真的需要花一些时间。这里有一个解决问题的Puck请求:https://github.com/iconara/puck/pull/7,重要的部分在DependencyResolver
类中,它涉及启动一个单独的ScriptingContainer
并跳过一些箍。
我希望您不需要所有这些来解决您的问题,但根据您想要做的事情,重置环境会非常困难。
答案 1 :(得分:0)
尝试将GEM_HOME / GEM_PATH设置为本地目录路径