我需要解析用 Ruby 编写的 Vagrantfile 中定义的配置,并在我的 java 代码中的其他地方使用这些设置。尝试探索 jRubyParser 但没有遇到任何定义它使用的文档。
在本地克隆了 Vagrant 存储库,但浏览代码也无济于事,因为我之前没有使用 Ruby 的经验。Vagrant 将如何读取文件中定义的配置?任何输入?
我需要解析用 Ruby 编写的 Vagrantfile 中定义的配置,并在我的 java 代码中的其他地方使用这些设置。尝试探索 jRubyParser 但没有遇到任何定义它使用的文档。
在本地克隆了 Vagrant 存储库,但浏览代码也无济于事,因为我之前没有使用 Ruby 的经验。Vagrant 将如何读取文件中定义的配置?任何输入?
Vagrantfile 是一个常规的 Ruby 脚本,也就是说,它应该被 Ruby 解释器解释而不是作为配置文件读取。
更难的是,一些配置选项没有声明为 Vagrantfile 中的顶级变量,而是在一些函数调用中声明为对象的属性(如“config.vm.provider”。
根据您的配置有多复杂,我会考虑只逐行读取文件并进行正则表达式匹配以获取我需要的变量。不是最优雅的解决方案,但可能比替代方案更快实施。
此外,如果您的提供者总是相同的,比如 VirtualBox,也许您可以从那里获得一些配置。在这种情况下,您只需要读取位于“VirtualBox VMs”目录中某处的文件(在 Mac 上,它位于“$HOME/VirtualBox VMs”中)。它是一个 XML 文件,因此您可以使用其中一个 Java XML 解析器来获取您需要的内容。