网络异常,图片无法展示
|
环境
我这边使用的是 Maven 3.8.1
版本,可以使用 Quarkus 官方提供的 io.quarkus:quarkus-maven-plugin:2.0.1.Final
插件来快速穿件 Quarkus 项目。
创建项目
使用以下 Maven 命令来创建一个新项目:
mvn io.quarkus:quarkus-maven-plugin:2.0.1.Final:create \ -DprojectGroupId=top.mjava \ -DprojectArtifactId=quarkus-demo \ -DprojectVersion=1.0 \ -DclassName="top.mjava.demo.Application" 复制代码
在执行命令的当前目录下会为项目生成和 ArtifactId 同名的文件夹,如果已存在该同名文件夹,则项目会创建失败。
在 src/main/docker
目录下还生成了 native 和 jvm 模式的 Dockerfile,构建镜像和运行容器的指令写在这些 Dockerfile 中。
命令描述
属性 | 默认值 | 描述 |
projectGroupId |
org.acme.sample |
项目的 GroupId |
projectArtifactId |
没有默认值,但是必填 | 项目的 ArtifactId |
projectVersion |
1.0.0-SNAPSHOT |
项目版本 |
platformGroupId |
io.quarkus |
目标平台的组 ID。鉴于所有现有平台都来自 io.quarkus,实际上不会明确使用这一平台。但它仍然是一个选择。 |
platformArtifactId |
quarkus-universe-bom |
目标平台 BOM 的工件 ID。为了使用本地构建的 Quarkus,它应该是 quarkus-bom。 |
platformVersion |
如果未指定,将解析最新的。 | 您希望项目使用的平台版本。它还可以接受版本范围,在这种情况下,将使用指定范围中的最新版本。 |
className |
如果省略则不创建 | 生成的资源的完全限定名称 |
path |
/hello |
资源路径,仅在设置了 className 时生效。 |
extensions |
[] | 要添加到项目的扩展列表(逗号分隔) |
管理扩展
创建项目后就可以进入到项目文件夹,可以使用简短的命令来操作项目了,例如:mvn quarkus:[command]
查看所有扩展
mvn quarkus:list-extensions
该命令可以查看当前项目所使用的的所有扩展。
➜ quarkus-demo: mvn quarkus:list-extensions [INFO] Scanning for projects... [INFO] [INFO] -----------------------< top.mjava:quarkus-demo >----------------------- [INFO] Building quarkus-demo 1.0 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:2.0.1.Final:list-extensions (default-cli) @ quarkus-demo --- [INFO] Current Quarkus extensions available: [INFO] [INFO] Blaze-Persistence blaze-persistence-integration-quarkus [INFO] Camel ActiveMQ camel-quarkus-activemq [INFO] Camel Async HTTP Client (AHC) camel-quarkus-ahc [INFO] Camel Async HTTP Client (AHC) Websocket camel-quarkus-ahc-ws [INFO] Camel AMQP camel-quarkus-amqp ......
添加扩展
mvn quarkus:add-extensions -Dextension=vertx
该命令可以添加扩展,例如上面这条命令为项目添加了 vertx
扩展
➜ quarkus-demo: mvn quarkus:add-extensions -Dextension=vertx [INFO] Scanning for projects... [INFO] [INFO] -----------------------< top.mjava:quarkus-demo >----------------------- [INFO] Building quarkus-demo 1.0 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:2.0.1.Final:add-extensions (default-cli) @ quarkus-demo --- [INFO] [SUCCESS] ✅ Extension io.quarkus:quarkus-vertx has been installed [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.370 s [INFO] Finished at: 2021-07-09T15:06:50+08:00 [INFO] ------------------------------------------------------------------------
删除扩展
mvn quarkus:remove-extensions -Dextension=vertx
该命令可以删除不用的扩展,比如删除刚刚添加的 vertx
扩展
➜ quarkus-demo: mvn quarkus:remove-extensions -Dextension=vertx [INFO] Scanning for projects... [INFO] [INFO] -----------------------< top.mjava:quarkus-demo >----------------------- [INFO] Building quarkus-demo 1.0 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:2.0.1.Final:remove-extensions (default-cli) @ quarkus-demo --- [INFO] [SUCCESS] ✅ Extension io.quarkus:quarkus-vertx has been uninstalled [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.112 s [INFO] Finished at: 2021-07-09T15:08:48+08:00 [INFO] ------------------------------------------------------------------------
项目构建
运行项目
mvn quarkus:dev
执行该命令时,项目会被运行,此时访问 http://localhost:8080/hello 就会得到 Hello RESTEasy
输出
quarkus-demo: mvn quarkus:dev [INFO] Scanning for projects... [INFO] [INFO] -----------------------< top.mjava:quarkus-demo >----------------------- [INFO] Building quarkus-demo 1.0 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:2.0.1.Final:dev (default-cli) @ quarkus-demo --- [INFO] Invoking io.quarkus:quarkus-maven-plugin:2.0.1.Final:generate-code @ quarkus-demo [INFO] Invoking org.apache.maven.plugins:maven-resources-plugin:2.6:resources @ quarkus-demo [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] Invoking org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile @ quarkus-demo [INFO] Nothing to compile - all classes are up to date [INFO] Invoking org.apache.maven.plugins:maven-resources-plugin:2.6:testResources @ quarkus-demo [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/zheng/coding/study/quarkus-demo/src/test/resources [INFO] Invoking org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile @ quarkus-demo [INFO] Nothing to compile - all classes are up to date Listening for transport dt_socket at address: 5005 __ ____ __ _____ ___ __ ____ ______ --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ --\___\_\____/_/ |_/_/|_/_/|_|\____/___/ 2021-07-09 15:16:47,146 INFO [io.quarkus] (Quarkus Main Thread) quarkus-demo 1.0 on JVM (powered by Quarkus 2.0.1.Final) started in 3.412s. Listening on: http://localhost:8080 2021-07-09 15:16:47,194 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. 2021-07-09 15:16:47,199 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, smallrye-context-propagation]
构建项目
mvn quarkus:build
该命令会构建项目,并会在 target/quarkus-app/
目录下创建一个可运行的 jar
包
➜ quarkus-demo mvn quarkus:build [INFO] Scanning for projects... [INFO] [INFO] -----------------------< top.mjava:quarkus-demo >----------------------- [INFO] Building quarkus-demo 1.0 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:2.0.1.Final:build (default-cli) @ quarkus-demo --- [INFO] [org.jboss.threads] JBoss Threads version 3.4.0.Final [INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 1977ms [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.776 s [INFO] Finished at: 2021-07-09T15:13:54+08:00 [INFO] ------------------------------------------------------------------------
总结
更多命令可以执行下面的命令查看,本文只介绍了几种常用的
mvn io.quarkus:quarkus-maven-plugin:2.0.1.Final:help // 或者在项目目录下可使用简短命令 mvn quarkus:help 复制代码