1

我一直在寻找这个,但还没有找到一个明确的答案,那就是:除了 Ruby,是否可以使用其他语言为 Redmine 创建插件?

如果是这样,那通常会产生任何变通方法和困难吗?或者使用它们会像使用 Ruby 一样流畅吗?

我主要想到 Golang。还有 Elixir、Rust、Python。

4

1 回答 1

2

Redmine 插件必须插入 Redmine。因此,他们需要使用内部 Redmine API(用 Ruby 编写并可访问)来注册其功能并嵌入到应用程序中。很多时候,插件会扩展或覆盖 Redmine 的部分内容以实现其功能。插件将自己嵌入到 Redmine 中并在相同的进程中运行以形成一个集成程序。

因此,您需要使用与 Redmine 本身运行的相同 Ruby 版本。虽然理论上可以用 C(或兼容的语言)编写插件并使用 Ruby 的 C 接口,但这肯定会比编写 Ruby 更痛苦,并且无论如何仍然与等效的 Ruby 相似。

如果您想以不同的语言开发外部功能,您可以使用任何您喜欢的语言从任何外部程序通过其REST API访问 Redmine。但它不会是插件,也不会扩展 Redmine 本身。

于 2022-02-09T13:43:10.287 回答