http://www.intellij.org.cn/blog/?p=1191
写
Ruby
代码时少不了使用
gem
,当然在
JRuby
中也不例外。如果你在程序中嵌入
JRuby
代码,也就是
embed JRuby
方式,如果
JRuby
脚本还需要用到
gem
,这些
gem
存放在哪里是一个问题。当然你可以在目标服务器上安装
JRuby
环境,然后以标准的
gem
管理方式安装
gem
,
embed JRuby
是可以访问到
jruby.home
信息就可以加载这些
gem
,但是这种方式部署和管理都太麻烦。如果能将这些
gem
打包到一个
jar
文件中,然后放置到运行环境中(如放到
/WEB-INF/lib
目录下),方便
JRuby
脚本引用这些
gem
,那就方便多啦。这个机制其实在
JRuby 1.1.6
中就有啦,地址在:
http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar
,本文相当一个介绍,让大家了解这个过程。
1.
首先我们要创建一个
gem repository
目录,存放项目脚本需要引用的
gem
,命令如下:
$ java -jar jruby-complete-1.6.0.jar -S gem install -i ./xxx_gems gem_name –no-rdoc –no-ri
这里我们说明一下,
-i
表示安装到指定的目录下,也就是
gem repository
目录,这里为
xxx_gems
目录,
gem_name
为
gem
名称,如果要安装多个
gem
,再执行多次换
gem_name
即可。
2. xxx_gems
目录其实就是标准的
gem repository
,包含四个目录
cache
、
doc
、
gems
和
specifications
,其中
specifications
保存
gem repository
中所有
gem
的
gemspec
文件,通过
specifications
目录,我们可以了解仓库中所有
gem
的信息。
3.
接下来我们需要将
gem repository
进行
jar
打包,命令如下:
$ jar cf xxx_gems.jar -C xxx_gems .
这个命令表示将
xxx_gems
目录下的所有文件全部归档到
xxx_gems.jar
这个文件中
4.
最后将
xxx_gems.jar
添加到项目的
classpath
中即可。这里说明一下运行的机制。
JRuby
在运行时,会从
classpath
中扫描
specifications
目录,并将其自动添加到
Gem.path
中,这样
jar
中的
gem
就可以被脚本所使用啦。
通过
gems in Jar
这种方式,将
gem repository
归档到
jar
文件中,然后提供给
JRuby
脚本使用,发布和管理就方便多啦。在实际的项目中,可以将
gem repository jar
放置到
Maven Repository
中,通过
Maven
的
dependency
机制引用就可以啦,非常便捷。
http://fox1984.iteye.com/blog/1149442
分享到:
相关推荐
在安装Watir时,我们通常需要安装一些特定的Gem包,Gem是Ruby的包管理器,用于管理和安装Ruby库。对于"watir安装所需要的gem包",主要涉及的Gem包有`watir-webdriver`和`selenium-webdriver`。`watir-webdriver`是...
这将从官方 Gem 仓库下载并安装最新版本的 Mechanize。 3. **依赖的 Gem**: Mechanize 可能依赖于其他一些 gem,例如解析 HTML 或 XML 的库。在某些情况下,可能需要预先安装这些依赖项,例如 Nokogiri(用于...
用于打包ruby代码生成EXE程序,最新的GEM包ocra-1.31.gem
ruby mechanize 2.7.2 gem 包
unf_ext gem包
Ruby 2.1.0 Gem 包是针对Ruby on Rails框架的一个重要组件,它包含了运行Rails应用程序所需的库和依赖项。Rails是用Ruby语言编写的开源Web应用框架,遵循MVC(模型-视图-控制器)架构模式,使得开发者能够更高效地...
gem install [gemname] # 安装指定gem包,程序先从本机查找gem包并安装,如果本地没有,则从远程gem安装。 gem install -l [gemname] # 仅从本机安装gem包 gem install -r [gemname] # 仅从远程安装gem包 gem ...
SECS Driver是设备端的应用程序,负责解析来自主机系统的指令并控制设备行为,同时将设备的状态和数据反馈给主机。模拟器的好处在于,开发者可以无需实际设备就能测试和调试驱动程序,大大提升了效率。 描述中提到...
将这些gem文件移动到你的系统GEM目录(通常在`C:\Ruby193\lib\ruby\gems\[version]\gems`下,具体取决于你的安装路径),然后打开命令行,使用以下命令安装gem: ```bash gem install [gem_file_name].gem --local ...
4. command prompt go to –> C:\selenium-remote-control-1.0.3\selenium-server-1.0.3>java -jar selenium-server.jar 5. Download the RubyInstaller– The Ruby Installer is currently available only for the ...
Gem 是 Ruby 的包管理器,用于安装和管理各种库和框架,包括 Rails。如果你无法通过网络升级或安装 Rails,可以采用本地安装包的方式。以下是对 Rails 2.3.2 Gem 本地安装包及其使用说明的详细解读。 1. **Rails ...
标题中提到的“SECS GEM 300mm半導體設備軟體標準”涉及到半导体行业内的一个重要通信协议标准——SECS/GEM(SEMI Equipment Communications Standard/Generic Equipment Model)。SECS( Semiconductor Equipment ...
Gem5 是一个开源免费的处理器开发设计工具,由 Michigan 大学的 m5 和 Wisconsin 大学的 GEMS 合并而成。它可以用于开发各种模型,包括片上 IP 模型、ISA 指令集 decoder 模型和 ruby 的 memory 模型。Gem5 使用 ...
接下来是`redis-3.0.0.gem`,这是一个Ruby gem包,用于在Ruby环境中搭建Redis集群。Redis Cluster是Redis提供的分布式解决方案,它通过将数据分片到多个节点来实现高可用性和水平扩展。使用此gem包的流程如下: 1. ...
一般的方法是通过gem进行安装,而gem又依赖于Ruby环境,所以要先安装Ruby,然后安装sass和compass,也可以直接使用sass.gem文件进行安装
Ruby社区使用gem作为包管理器,它允许开发者方便地管理和部署Ruby应用程序的依赖。 Redis 3.2.2是Redis的一个稳定版本,发布于2016年,它引入了多项改进和新特性。以下是一些关于Redis 3.2.2的重要知识点: 1. **...
许多知名的设备制造商和系统集成商都已经采用了这一标准,并将其作为其产品和服务的一部分。此外,相关的行业协会和标准化组织也积极推动SECS/GEM的发展和完善,以确保其能够满足不断变化的技术需求。 ##### 1.6 ...
Ruby中的gem包管理是开发和使用Ruby应用的关键组成部分。RubyGems是一个强大的工具,它使得开发者能够方便地分发、安装和管理Ruby库和应用程序。本文将深入探讨RubyGems的使用方法,包括常见的命令行操作,以及如何...
ruby 连接mysql的gem安装包
- **Ruby**: Ruby有`gem`用于打包和发布gem库,而`bundle`可以创建包含所有依赖的可部署包。 3. **打包工具的优势** - **简化分发**:打包工具可以将不同文件结构和依赖关系整理为一个或多个可执行文件或安装包...