使用Maven工具创建Quarkus项目

简介: 我这边使用的是 Maven 3.8.1 版本,可以使用 Quarkus 官方提供的 io.quarkus:quarkus-maven-plugin:2.0.1.Final 插件来快速穿件 Quarkus 项目。

网络异常,图片无法展示
|


环境


我这边使用的是 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
复制代码


目录
相关文章
|
19天前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
89 1
Maven——创建 Spring Boot项目
|
22天前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
20 1
如何使用 maven 创建一个 Spring Boot项目
|
30天前
|
Java Maven Kotlin
idea maven创建kotlin项目
本文介绍了在IntelliJ IDEA中使用Maven创建Kotlin项目的步骤,包括在`pom.xml`文件中添加Maven中央仓库、配置`kotlin-maven-plugin`插件、指定源目录、添加测试插件和执行插件,以及添加Kotlin测试依赖和标准库依赖。文中还提到了如何通过更换镜像或使用代理来解决依赖下载速度慢的问题,并展示了运行示例代码的截图。
61 4
idea maven创建kotlin项目
|
28天前
|
Java Maven Android开发
eclipse创建maven项目
本文介绍了在Eclipse中创建Maven项目的步骤,包括打开Eclipse、选择Java项目、完成项目创建以及自动下载插件的过程。
73 2
eclipse创建maven项目
|
9天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
24 1
|
10天前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
25天前
|
Java 应用服务中间件 Maven
【终极解决方案】IDEA maven 项目修改代码不生效。
【终极解决方案】IDEA maven 项目修改代码不生效。
200 1
|
29天前
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
119 0
idea+maven+tomcat+spring 创建一个jsp项目
|
30天前
|
Java Maven
使用javadoc生成maven项目的文档
本文介绍了如何在Maven项目中使用maven-javadoc-plugin插件来生成项目的JavaDoc文档,并展示了配置插件、编写代码、运行Maven命令以及查看生成文档的完整步骤。
19 0
使用javadoc生成maven项目的文档
|
23天前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
260 0

推荐镜像

更多