JRuby项目源码构建与开发指南

JRuby项目源码构建与开发指南

jruby JRuby, an implementation of Ruby on the JVM jruby 项目地址: https://gitcode.com/gh_mirrors/jr/jruby

前言

JRuby作为Ruby语言在JVM平台上的实现,其构建过程与传统Ruby解释器有所不同。本文将全面介绍如何从源码构建JRuby项目,包括环境准备、构建流程、测试方法以及发布打包等关键环节。

环境准备

在开始构建JRuby之前,需要确保开发环境中已安装以下工具:

  1. Java开发工具包:需要Java 8或更高版本

    • 在Mac OS X上,如果未设置JAVA_HOME环境变量,可执行:export JAVA_HOME=$(/usr/libexec/java_home)
  2. 构建工具

    • Maven 3.3.0+(项目已提供Maven Wrapper,可通过./mvnw使用)
    • Apache Ant 1.8+
  3. 编译工具

    • Make工具
    • C++编译器(用于编译jruby-launcher gem)

基础构建流程

首次构建

首次从源码构建JRuby时,需要生成核心的lib/jruby.jar文件。执行以下命令:

./mvnw

此命令会执行Maven的默认"install"目标,完成以下工作:

  • 编译JRuby核心代码
  • 构建lib/jruby.jar(命令行运行必需)
  • 安装默认gem规范到lib/ruby/gems/shared/specifications/default/
  • 将相关gem的Ruby文件安装到lib/ruby/stdlib/

构建完成后,环境即可运行Ruby应用程序。

增量构建

开发过程中,如果只修改了Java源码,可以仅重新构建核心jar文件以节省时间:

./mvnw -Dcore

运行JRuby

构建完成后,可通过以下方式运行JRuby:

bin/jruby

如果jruby-launcher gem安装成功,这将是一个平台相关的原生可执行文件;否则会使用bin/jruby.sh shell脚本。

RubyGems默认已安装,可通过以下方式使用:

bin/gem

或者通过JRuby显式调用:

jruby -S gem ...

开发与测试

开发环境准备

在开始开发前,需要引导开发环境:

mvn -Pbootstrap

如果遇到jruby-launcher编译问题,可使用:

mvn -Pbootstrap-no-launcher

日常测试

推荐运行Ruby specs进行日常测试:

./bin/jruby -S rake spec:ruby:fast

更全面的测试可运行MRI测试套件:

./bin/jruby -S rake test:mri
运行单个测试文件
./bin/jruby test/mri/runner.rb test/mri/<测试路径>
排除已知失败测试
./bin/jruby test/mri/runner.rb --excludes=test/mri/excludes <测试文件>

Java单元测试

如果修改了JRuby核心运行时或嵌入API,应运行Java单元测试:

mvn -Ptest

构建清理

基本清理

mvn clean

注意:这只会清理jruby-core构件和./lib/jruby.jar

完全清理

mvn -Pclean

发布打包

标准发行包(tar.gz/zip)

./mvnw -Pdist

生成文件位于./maven/jruby-dist/target

jruby-complete.jar

./mvnw -Pcomplete

生成文件位于./maven/jruby-complete/target

Maven构件

./mvnw -Pmain

构件将安装到本地Maven仓库

JRuby Jars gem

./mvnw -Pjruby-jars

gem包位于./maven/jruby-jars/pkg

构建所有包

./mvnw -Pall

发布流程

  1. 修改根目录下的VERSION文件设置新版本号
  2. 执行发布命令:
./mvnw clean deploy -Psonatype-oss-release
  1. 完成后需要到Sonatype OSS界面进行最终确认和发布

  2. 发布完成后,更新VERSION文件中的开发版本号,并重新生成pom文件:

./mvnw

结语

本文详细介绍了JRuby项目的构建、开发和测试流程。作为Ruby在JVM上的实现,JRuby的构建系统结合了Java生态的工具链(Maven、Ant)和Ruby生态的测试框架(RSpec、MSpec),开发者需要熟悉这两套工具才能高效地进行JRuby开发。

jruby JRuby, an implementation of Ruby on the JVM jruby 项目地址: https://gitcode.com/gh_mirrors/jr/jruby

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郁铎舒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值