预览使用 Quarkus 开始编码的新方式

您是否曾使用 Maven 插件或 code.quarkus.io 生成过 Quarkus 项目?

如果您这么做过,那么您可能想知道,面对 Quarkus 如此广泛的扩展,为什么我们只允许您生成一个 REST API 示例应用程序。当然,您可以选择将哪些扩展作为应用程序的依赖项,这很酷,因为有些扩展在无需额外代码的情况下就能提供新功能。但是,有些扩展也需要配置和/或代码才能工作,这使得它当前的适用性非常有限。

隆重推出我们的新代码生成系统

因此,我们非常激动地在 Quarkus 1.7.0.Final 中推出我们新代码生成系统的预览版。它被称为 Codestarts。这个想法很简单,您选择您的扩展,它们就能提供示例代码来帮助您入门。

这个预览版本仅仅是一个开始,包含了三个示例 codestarts

  • Java、Kotlin 和 Scala 中的传奇 RESTEasy 示例,当您选择 RESTEasy 扩展时

  • Java 中可爱而甜蜜的 Qute 模板引擎,当您选择 Qute 扩展时

  • Java 中强大而坚固的 Quarkus Command Mode,当您不选择任何提供示例的扩展时

想试试吗?

我们在 Quarkus Maven 插件中添加了一个功能标志来创建您的应用程序

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled`

使用 Maven 作为构建工具的 Command Mode Quarkus 项目

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled \
-DprojectGroupId=org.acme -DprojectArtifactId=go-go-commando
cd go-go-commando
# ./mvnw.cmd on Windows
./mvnw package
java -jar target/go-go-commando-1.0-SNAPSHOT-runner.jar

与之前使用 Gradle 作为构建工具的相同

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled \
-DprojectGroupId=org.acme -DprojectArtifactId=go-go-commando-gradle \
-DbuildTool=GRADLE
cd go-go-commando-gradle
# ./gradlew.bat on Window
./gradlew build
java -jar build/go-go-commando-gradle-1.0-SNAPSHOT-runner.jar

使用 Kotlin 编写的 Quarkus 项目,包含 RESTEasy 和 Qute 示例

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled \
-DprojectGroupId=org.acme -DprojectArtifactId=kotlin-with-rest-is-qute \
-Dextensions=kotlin,resteasy,qute
cd kotlin-with-rest-is-qute
# ./mvnw.cmd on Windows
./mvnw quarkus:dev

使用 SmallRye Reactive Messaging Kafka 的空白 Scala Quarkus 项目

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled \
-DprojectGroupId=org.acme -DprojectArtifactId=scala-kafka \
-Dextensions=scala,quarkus-smallrye-reactive-messaging-kafka \
-DskipExample
cd scala-kafka
# ./mvnw.cmd on Windows
./mvnw quarkus:dev
我们在新项目 README.md 中添加了入门说明(根据您选择的扩展和构建工具而定)。

使用您喜欢的工具/扩展启动一个空白 Quarkus 应用程序

Codestarts 还带来了一个巨大的改进 😅,别笑,这是社区长期以来的一个合理要求,使用 Codestarts,您可以通过添加:-DskipExample 来生成一个空白 Quarkus 应用。

您可能会注意到 Codestarts 缺少一些功能

  1. 生成的示例的包名现已固定为 org.acme,我们认为使其可自定义不会增加太多价值,但如果您觉得这是一个损失,请告诉我们。

  2. 由于一个项目将包含多个示例,我们必须避免冲突,因此您不能再在应用程序中定义 REST path 了。

寻找 Bug

为了稳定,Codestarts 在 Quarkus 1.7.x 中仍处于预览模式,但我们希望尽快将其设为默认行为。因此,请试用一下并报告您发现的任何 Bug :-)

贡献示例 Codestart

如果您有一个扩展并希望为其提供 codestart

如果您有任何问题或建议,请随时通过 ZulipQuarkus Development 邮件列表 联系我们。

以下是用于构建 Quarkus 应用程序的 Codestarts 核心代码,以及 基础 codestarts

通往无限新游乐场的大门现已打开

我们已经在为下一个 Quarkus 版本准备新的 codestarts!如果您可以使用自己的一套个人/公司 codestarts 呢?未完待续……