`
wuhuizhong
  • 浏览: 682345 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

将gem包打成jar包

    博客分类:
  • ROR
 
阅读更多

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包

    在安装Watir时,我们通常需要安装一些特定的Gem包,Gem是Ruby的包管理器,用于管理和安装Ruby库。对于"watir安装所需要的gem包",主要涉及的Gem包有`watir-webdriver`和`selenium-webdriver`。`watir-webdriver`是...

    ruby mechanize安装需要的gem包

    这将从官方 Gem 仓库下载并安装最新版本的 Mechanize。 3. **依赖的 Gem**: Mechanize 可能依赖于其他一些 gem,例如解析 HTML 或 XML 的库。在某些情况下,可能需要预先安装这些依赖项,例如 Nokogiri(用于...

    打包ruby EXE程序的OCRA GEM包

    用于打包ruby代码生成EXE程序,最新的GEM包ocra-1.31.gem

    ruby mechanize 2.7.2 gem 包

    ruby mechanize 2.7.2 gem 包

    unf_ext gem包

    unf_ext gem包

    ruby 2.1.0 gem 包

    Ruby 2.1.0 Gem 包是针对Ruby on Rails框架的一个重要组件,它包含了运行Rails应用程序所需的库和依赖项。Rails是用Ruby语言编写的开源Web应用框架,遵循MVC(模型-视图-控制器)架构模式,使得开发者能够更高效地...

    Ruby中gem包管理器的用法及用bundler来管理多版本的gem

    gem install [gemname] # 安装指定gem包,程序先从本机查找gem包并安装,如果本地没有,则从远程gem安装。 gem install -l [gemname] # 仅从本机安装gem包 gem install -r [gemname] # 仅从远程安装gem包 gem ...

    SECS/GEM/GEM300的测试模拟器,某公司流出版本,好用无BUG

    SECS Driver是设备端的应用程序,负责解析来自主机系统的指令并控制设备行为,同时将设备的状态和数据反馈给主机。模拟器的好处在于,开发者可以无需实际设备就能测试和调试驱动程序,大大提升了效率。 描述中提到...

    ruby离线安装所需所有的gem文件(另有安装包)

    将这些gem文件移动到你的系统GEM目录(通常在`C:\Ruby193\lib\ruby\gems\[version]\gems`下,具体取决于你的安装路径),然后打开命令行,使用以下命令安装gem: ```bash gem install [gem_file_name].gem --local ...

    ruby selenium-client-1.2.18.gem

    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 ...

    rails2.3.2gem本地安装包及使用说明

    Gem 是 Ruby 的包管理器,用于安装和管理各种库和框架,包括 Rails。如果你无法通过网络升级或安装 Rails,可以采用本地安装包的方式。以下是对 Rails 2.3.2 Gem 本地安装包及其使用说明的详细解读。 1. **Rails ...

    gem5学习笔记.pdf

    Gem5 是一个开源免费的处理器开发设计工具,由 Michigan 大学的 m5 和 Wisconsin 大学的 GEMS 合并而成。它可以用于开发各种模型,包括片上 IP 模型、ISA 指令集 decoder 模型和 ruby 的 memory 模型。Gem5 使用 ...

    redis-3.0.0.tar和redis-3.0.0.gem.rar

    接下来是`redis-3.0.0.gem`,这是一个Ruby gem包,用于在Ruby环境中搭建Redis集群。Redis Cluster是Redis提供的分布式解决方案,它通过将数据分片到多个节点来实现高可用性和水平扩展。使用此gem包的流程如下: 1. ...

    sass-3.6.0.gem

    一般的方法是通过gem进行安装,而gem又依赖于Ruby环境,所以要先安装Ruby,然后安装sass和compass,也可以直接使用sass.gem文件进行安装

    Ruby中的gem包管理的使用及gem源搭建教程

    Ruby中的gem包管理是开发和使用Ruby应用的关键组成部分。RubyGems是一个强大的工具,它使得开发者能够方便地分发、安装和管理Ruby库和应用程序。本文将深入探讨RubyGems的使用方法,包括常见的命令行操作,以及如何...

    secs /gem 中文详解

    许多知名的设备制造商和系统集成商都已经采用了这一标准,并将其作为其产品和服务的一部分。此外,相关的行业协会和标准化组织也积极推动SECS/GEM的发展和完善,以确保其能够满足不断变化的技术需求。 ##### 1.6 ...

    ruby 连接mysql的gem安装包

    ruby 连接mysql的gem安装包

    软件打包工具 打包 工具 各种语言打包工具

    - **Ruby**: Ruby有`gem`用于打包和发布gem库,而`bundle`可以创建包含所有依赖的可部署包。 3. **打包工具的优势** - **简化分发**:打包工具可以将不同文件结构和依赖关系整理为一个或多个可执行文件或安装包...

    在Linux下部署的大致所有jar包

    Redis-3.2.2.gem是用于Ruby环境的Redis客户端库,而redis-3.2.2.tar.gz则是Redis服务器的源代码包。安装Redis通常涉及编译源码,配置文件,启动服务等步骤。 2. **Ruby**:Ruby是一种面向对象的、动态类型的编程...

    热乎乎的gem5最新源代码

    【gem5源码详解】 gem5是一个开源的、高度可配置的系统模拟器,它广泛用于计算机体系结构、操作系统、网络以及硬件设计的研究。这个"热乎乎的gem5最新源代码"包含了gem5项目的最新版本,对于研究者和开发者来说,这...

Global site tag (gtag.js) - Google Analytics