我有一个使用一些Ruby脚本的大型Java项目(主要是因为Ruby支持" yield")。 Ruby代码调用Java代码,调用更多的Ruby代码。它是非常交错的,但一切都是从Java驱动的。
我使用嵌入式jruby-standalone并构建jar-with-dependencies(通过maven)。我使用maven插件运行jrubyc并生成.java文件,maven为我编译。
当我运行jar-with-dependencies时,我可以将我的调试器附加到Java进程而没有任何问题,但我真的很想能够调试Ruby代码。这有解决方案吗?
我没有启动任何类型的jruby可执行文件,我可以附加参数。它嵌入在jar中并通过java -jar调用。
答案 0 :(得分:1)
您可以使用gem pry-remote。
与pry不同,它不需要从终端(或终端模拟器,如果你在Windows上)启动进程。
它本身并不是一个真正的调试器,但是如果你在代码中添加binding.remote_pry
你希望观察并在该上下文中作出反应(例如你可以捕获异常),这会在等待模式下进行远程连接,从另一个终端,你应该可以连接到这个进程并进行调试。
提供2分钟实践教程here。
<强>缺点:强>
在使用jruby,h2和jetty服务器开发Web应用程序时,我在预部署环境中使用它。
祝你好运!