ruby-on-rails – 使Ruby Gems与Java JAR类似吗?

我相信我已经把这个问题清楚,简明扼要.为什么要问

我要向学生解释Ruby on Rails框架,这需要我对Java世界做一些比喻(因为课程是以Java为中心的).我没有Ruby on Rails的实践经验,但我感觉到Gem / Jar的类比是一个有效的.

任何人都有可能在这个问题上有更多的光明吗?

解决方法

作为一个简短的答案,我会说:是的,它是有效的.

作为一个很长的答案,它是有效的,但还有一些重要的区别,你可能想要描述.

一个罐子有一些品质,使它与宝石非常不同. JAR是打包的可执行库,您通常必须在调用时在Java程序的执行中显式声明依赖关系(通过在调用java解释器时将jar声明为依赖关系).除了几个明确定义的文件位置(例如,目录结构必须镜像包路径)之外,jar对其执行的结构很少.

宝石是一个用于将库永久性地安装到系统的描述符,以及在运行时可用于声明依赖关系的一系列功能.宝石具有严格的版本化语法作为其定义的一部分,并且宝石往往从少量集中的存储库中分布,这些存储库花费大量精力确保宝石名称中的唯一性.宝石可以明确地声明其依赖于其他宝石. (与JAR相对应,您必须确保您拥有在调用时满足的jar的所有依赖关系,而jar不明确地承担依赖关系声明或解析的责任).此外,gem工具中内置了一些非常方便的可选功能,例如,如果用户希望“运行gem”,您可以声明一个可以调用认可执行文件,您可以声明一个单元测试套件对于宝石,以便安装宝石的用户可以确保其功能.

另外,您可能想要向学生介绍RubyGems是独立于Ruby语言本身而创建的工具,并且受益于管理jar所产生的许多不便和投诉已经从多年的Java开发中得到很好的体现.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...