FAQ
Get answers to some of your common Quarkus questions.
我在哪儿能获得到?
Quarkus is published in Maven Central. We recommend you start your Quarkus experience with our Getting Started guides or by downloading a scaffolded application from code.quarkus.io.
Quarkus稳定吗?
Yes, we consider Quarkus stable. Quarkus is used in production by a wide range of organizations (see some user stories). Remember 95% of the features Quarkus apps use are provided by the ecosystem like Hibernate ORM, Eclipse Vert.x, Netty, RESTEasy, etc. These libraries are rock solid :)
You can go to quarkus.io/extensions to see if a particular extension is stable (default) or preview.
什么是Quarkus扩展?
Quarkus的主要目标之一是易于扩展和构建一个充满活力的生态系统。
可以将Quarkus扩展视为您的项目依赖项。扩展可以配置、引导并将框架或技术集成到您的Quarkus应用程序中。它们还做了所有繁重的工作,为GraalVM提供正确的信息,以便应用程序本地编译。这将允许第三方项目轻松地利用我们所做的工作,使其更容易瞄准GraalVM。
什么是扩展状态?
扩展在进入Quarkus生态系统时具有不同程度的成熟度。状态提供了你可以依赖的期望。
Stable: 向后兼容性和在生态系统中的存在被非常重视。应用程序可以安全地依赖于这些扩展。没有标记为预览或实验的扩展(大多数)是稳定的。
Preview: 不能保证向后兼容性和在生态系统中的存在。具体的改进可能需要改变配置、API和计划,使之变得 stable 。这些扩展还处于成熟过程的中间阶段。
Experimental: 尽早反馈,以使想法更加成熟。在解决方案成熟之前,无法保证平台的稳定性或长期存在。这些扩展正处于其成熟过程的开始阶段。
Deprecated: backward compatibility and presence in the ecosystem is not guaranteed. Such extensions are likely to be replaced or removed in a future version of Quarkus.
You can find the extension status on quarkus.io/extensions or in the extension guides.
Quarkus团队会接受我的扩展吗?
噢,是的!我们在Quarkus "初始" 团队之外编写了相当多的扩展。
Quarkus是一个开放的生态系统,我们希望看到人们编写应用程序所需的所有扩展。我们正在工作,正如我们所说,允许一个扩展在单独的repo和单独的GAV中发布,从而在Maven repo中独立于Quarkus核心发布。这将大大简化发布过程,期待很快有新消息。
The one current restriction is that extensions should work in both OpenJDK and GraalVM native executables. That is the guarantee we give Quarkus users (a cross compilation for their app). We have a maturity model to improve an extension to be fully "Quarked" and benefit from Quarkus, all done in incremental steps. Just hop on our mailing list to discuss your ideas and get help. And you can start reading our Writing extensions guide as well or more simply get inspiration from the existing ones.
What is GraalVM?
GraalVM 是一个通用的虚拟机,用于运行用各种不同语言编写的应用程序,并提供将JVM字节码编译为原生可执行文件的能力(这个原生可执行文件运行一个名为SubstrateVM的特殊虚拟机)。与传统JVM相比,这些原生可执行文件启动速度更快,使用的内存也少得多,但是并不是所有JVM特性都得到支持,有些特性的限制比一般的要多。
例如,默认情况下,GraalVM中的反射将不能工作,除非类/成员已显式地为反射注册。这通常是通过列出JSON文件中的每个类、方法、字段和构造函数,并将其作为参数传递到原生镜像构建中实现的。显然,除了最简易的项目外,这对于所有项目来说都是相当麻烦的。Quarkus提供了一个框架,可以轻松地处理这些注解,并以编程的方式确定应该注册哪些内容。