麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

使用Vert.x Maven插件快速創建項目的方法

2024-07-14 08:42:20
字體:
來源:轉載
供稿:網友

本文介紹了使用Vert.x Maven插件快速創建項目的方法,分享給大家,具體如下:

文檔地址: https://reactiverse.io/vertx-maven-plugin

已有項目添加該插件

在項目 pom.xml 目錄,執行下面的命令即可添加:

mvn io.reactiverse:vertx-maven-plugin:1.0.17:setup

執行該命令后,在 pom.xml 中會增加下面的配置:

<properties> <vertx.version>3.5.3</vertx.version> <vertx-maven-plugin.version>1.0.17</vertx-maven-plugin.version></properties><dependencyManagement> <dependencies>  <dependency>   <groupId>io.vertx</groupId>   <artifactId>vertx-stack-depchain</artifactId>   <version>${vertx.version}</version>   <type>pom</type>   <scope>import</scope>  </dependency> </dependencies></dependencyManagement>

還有下面的插件:

<plugin> <groupId>io.reactiverse</groupId> <artifactId>vertx-maven-plugin</artifactId> <version>${vertx-maven-plugin.version}</version> <executions>  <execution>   <id>vmp</id>   <goals>    <goal>initialize</goal>    <goal>package</goal>   </goals>  </execution> </executions> <configuration>  <redeploy>true</redeploy> </configuration></plugin>

自動引入的 vert.x 版本為 3.5.3,你可以通過在 mvn 命令增加 -DvertxVersion=3.4.0 這個參數來指定需要的版本。

從頭創建空項目

首先你 必須創建一個目錄 ,vert.x 插件不會自動給你創建目錄,只會創建目錄內的 src 和 pom.xml 等文件。

創建一個目錄,進入該目錄內,在該目錄內執行下面的命令:

mvn io.reactiverse:vertx-maven-plugin:1.0.17:setup ^  -DprojectGroupId=org.acme ^  -DprojectArtifactId=acme-project ^  -DprojectVersion=1.0-SNAPSHOT ^  -Dverticle=org.acme.Foo ^  -Dverticle=io.vertx.sample.MyFirstVerticle ^  -Ddependencies=web

如果你使用的 Linux 系統,將上面的 ^ 改為 / 。

這里和上面相比增加了項目 GAV 的配置。

通過 -Dverticle=io.vertx.sample.MyFirstVerticle ,可以生成一個默認的 Verticle 類。

通過 -Ddependencies=web 可以指定你想加入的 vert.x 的依賴,這里寫的名字都是縮寫,具體對應關系看下面的介紹。

使用上面命令后,就創建了一個基礎 vert.x 項目,在開始學習 vert.x 的時候,通過這種方式可以更快的創建基礎項目。

-Ddependencies 對照表

源碼: dependencies.json

下面 JSON 中的 labels 就是縮寫名,groupId 和 artifactId 是對應的依賴。

[  {    "name": "Vert.x Web",    "labels": [      "web"    ],    "groupId": "io.vertx",    "artifactId": "vertx-web"  },  {    "name": "Vert.x Web Client",    "labels": [      "web-client"    ],    "groupId": "io.vertx",    "artifactId": "vertx-web-client"  },  {    "name": "Vert.x Mongo Client",    "labels": [      "mongo"    ],    "groupId": "io.vertx",    "artifactId": "vertx-mongo-client"  },  {    "name": "Vert.x Kafka Client",    "labels": [      "kafka"    ],    "groupId": "io.vertx",    "artifactId": "vertx-kafka-client"  },  {    "name": "Vert.x Consul Client",    "labels": [      "consul"    ],    "groupId": "io.vertx",    "artifactId": "vertx-consul-client"  },  {    "name": "Vert.x gRPC",    "labels": [      "gRPC"    ],    "groupId": "io.vertx",    "artifactId": "vertx-grpc"  },  {    "name": "Vert.x (async) JDBC Client",    "labels": [      "jdbc"    ],    "groupId": "io.vertx",    "artifactId": "vertx-jdbc-client"  },  {    "name": "Vert.x Redis Client",    "labels": [      "redis"    ],    "groupId": "io.vertx",    "artifactId": "vertx-redis-client"  },  {    "name": "Vert.x Mail Client",    "labels": [      "mail",      "smtp"    ],    "groupId": "io.vertx",    "artifactId": "vertx-mail-client"  },  {    "name": "Vert.x STOMP",    "labels": [      "stomp"    ],    "groupId": "io.vertx",    "artifactId": "vertx-stomp"  },  {    "name": "Vert.x EventBus Bridge using TCP",    "labels": [      "tcp-bridge"    ],    "groupId": "io.vertx",    "artifactId": "vertx-tcp-eventbus-bridge"  },  {    "name": "Vert.x - Apache Camel bridge",    "labels": [      "camel"    ],    "groupId": "io.vertx",    "artifactId": "vertx-camel-bridge"  },  {    "name": "Vert.x Bridge with AMQP",    "labels": [      "amqp"    ],    "groupId": "io.vertx",    "artifactId": "vertx-amqp-bridge"  },  {    "name": "Vert.x Client for RabbitMQ",    "labels": [      "rabbitmq"    ],    "groupId": "io.vertx",    "artifactId": "vertx-rabbitmq-client"  },  {    "name": "Vert.x Authentication Support using JDBC",    "labels": [      "jdbc-auth"    ],    "groupId": "io.vertx",    "artifactId": "vertx-auth-jdbc"  },  {    "name": "Vert.x Authentication Support using JWT",    "labels": [      "jwt-auth"    ],    "groupId": "io.vertx",    "artifactId": "vertx-auth-jwt"  },  {    "name": "Vert.x Authentication Support using Mongo",    "labels": [      "mongo-auth"    ],    "groupId": "io.vertx",    "artifactId": "vertx-auth-mongo"  },  {    "name": "Vert.x Authentication Support using Shiro",    "labels": [      "shiro-auth"    ],    "groupId": "io.vertx",    "artifactId": "vertx-auth-shiro"  },  {    "name": "Vert.x Authentication Support using OAuth 2",    "labels": [      "oauth2",      "oauth2-auth",      "oauth"    ],    "groupId": "io.vertx",    "artifactId": "vertx-auth-oauth2"  },  {    "name": "Vert.x support for RX Java",    "labels": [      "rx",      "rxjava"    ],    "groupId": "io.vertx",    "artifactId": "vertx-rx-java"  },  {    "name": "Vert.x support for JavaScript (Nashorn)",    "labels": [      "js",      "javascript"    ],    "groupId": "io.vertx",    "artifactId": "vertx-lang-js"  },  {    "name": "Vert.x support for Kotlin",    "labels": [      "kotlin",      "vertx-kotlin"    ],    "groupId": "io.vertx",    "artifactId": "vertx-lang-kotlin-compiler"  },  {    "name": "Vert.x support for Ruby (JRuby)",    "labels": [      "rb",      "ruby",      "jruby"    ],    "groupId": "io.vertx",    "artifactId": "vertx-lang-ruby"  },  {    "name": "Vert.x support for Apache Groovy",    "labels": [      "groovy"    ],    "groupId": "io.vertx",    "artifactId": "vertx-lang-groovy"  },  {    "name": "Vert.x Service Discovery",    "labels": [      "discovery",      "service-discovery"    ],    "groupId": "io.vertx",    "artifactId": "vertx-service-discovery"  },  {    "name": "Vert.x Circuit Breaker",    "labels": [      "circuit-breaker",      "circuit"    ],    "groupId": "io.vertx",    "artifactId": "vertx-circuit-breaker"  },  {    "name": "Vert.x Service Discovery for Kubernetes",    "labels": [      "discovery-kubernetes",      "service-discovery-kubernetes"    ],    "groupId": "io.vertx",    "artifactId": "vertx-service-discovery-bridge-kubernetes"  },  {    "name": "Vert.x Service Discovery for Consul",    "labels": [      "discovery-consul",      "service-discovery-consul"    ],    "groupId": "io.vertx",    "artifactId": "vertx-service-discovery-bridge-consul"  },  {    "name": "Vert.x Metrics using Dropwizard",    "labels": [      "jmx",      "dropwizard"    ],    "groupId": "io.vertx",    "artifactId": "vertx-dropwizard-metrics"  },  {    "name": "Vert.x Metrics using Hawkular",    "labels": [      "hawkular"    ],    "groupId": "io.vertx",    "artifactId": "vertx-hawkular-metrics"  },  {    "name": "Vert.x Shell",    "labels": [      "shell"    ],    "groupId": "io.vertx",    "artifactId": "vertx-shell"  },  {    "name": "Vert.x Unit",    "labels": [      "test"    ],    "groupId": "io.vertx",    "artifactId": "vertx-unit",    "scope": "test"  },  {    "name": "Vert.x Cluster Manager based on Hazelcast",    "labels": [      "hazelcast",      "hazelcast-cluster-manager"    ],    "groupId": "io.vertx",    "artifactId": "vertx-hazelcast"  },  {    "name": "Vert.x Cluster Manager based on Infinipan",    "labels": [      "infinispan",      "infinispan-cluster-manager"    ],    "groupId": "io.vertx",    "artifactId": "vertx-infinispan"  },  {    "name": "Vert.x Cluster Manager based on Zookeeper",    "labels": [      "zookeeper-cluster-manager"    ],    "groupId": "io.vertx",    "artifactId": "vertx-zookeeper"  },  {    "name": "Vert.x Cluster Manager based on Apache Ignite",    "labels": [      "ignite"    ],    "groupId": "io.vertx",    "artifactId": "vertx-ignite"  },  {    "name": "Vert.x Cluster Manager based on Apache Zookeeper",    "labels": [      "zookeeper"    ],    "groupId": "io.vertx",    "artifactId": "vertx-zookeeper"  },  {    "name": "Vert.x Web Template Engine based on Pebble",    "labels": [      "pebble",      "pebble-template",      "pebble-template-engine"    ],    "groupId": "io.vertx",    "artifactId": "vertx-web-templ-pebble",    "classifier": "shaded"  },  {    "name": "Vert.x Web Template Engine based on Apache Freemarker",    "labels": [      "freemarker",      "freemarker-template",      "freemarker-template-engine"    ],    "groupId": "io.vertx",    "artifactId": "vertx-web-templ-freemarker",    "classifier": "shaded"  },  {    "name": "Vert.x Web Template Engine based on Thymeleaf",    "labels": [      "thymeleaf",      "thymeleaf-template",      "thymeleaf-template-engine"    ],    "groupId": "io.vertx",    "artifactId": "vertx-web-templ-thymeleaf",    "classifier": "shaded"  },  {    "name": "Vert.x Web Template Engine based on Handlebars",    "labels": [      "handlebars",      "handlebars-template",      "handlebars-template-engine"    ],    "groupId": "io.vertx",    "artifactId": "vertx-web-templ-handlebars",    "classifier": "shaded"  },  {    "name": "Vert.x Web Template Engine based on Jade",    "labels": [      "jade",      "jade-template",      "jade-template-engine"    ],    "groupId": "io.vertx",    "artifactId": "vertx-web-templ-jade",    "classifier": "shaded"  },  {    "name": "Vert.x Web Template Engine based on MVEL",    "labels": [      "mvel",      "mvel-template",      "mvel-template-engine"    ],    "groupId": "io.vertx",    "artifactId": "vertx-web-templ-mvel",    "classifier": "shaded"  },  {    "name": "Vert.x (async) RPC service proxies",    "labels": [      "service-proxies",      "rpc-services"    ],    "groupId": "io.vertx",    "artifactId": "vertx-service-proxy"  },  {    "name": "Vert.x Service Factory using Apache Maven",    "labels": [      "maven-service-factory"    ],    "groupId": "io.vertx",    "artifactId": "vertx-maven-service-factory"  },  {    "name": "Vert.x Service Factory",    "labels": [      "service-factory"    ],    "groupId": "io.vertx",    "artifactId": "vertx-service-factory"  },  {    "name": "Vert.x Service Factory using HTTP",    "labels": [      "http-service-factory"    ],    "groupId": "io.vertx",    "artifactId": "vertx-http-service-factory"  },  {    "name": "Vert.x Configuration",    "labels": [      "config"    ],    "groupId": "io.vertx",    "artifactId": "vertx-config"  },  {    "name": "Vert.x Configuration with Kubernetes ConfigMap",    "labels": [      "config-kubernetes",      "config-config-map",      "config-configmap"    ],    "groupId": "io.vertx",    "artifactId": "vertx-config-kubernetes-configmap"  },  {    "name": "Vert.x Configuration with a Git repository",    "labels": [      "config-git"    ],    "groupId": "io.vertx",    "artifactId": "vertx-config-git"  },  {    "name": "Vert.x Configuration - HOCON format",    "labels": [      "config-hocon"    ],    "groupId": "io.vertx",    "artifactId": "vertx-config-hocon"  },  {    "name": "Vert.x Configuration - Yaml format",    "labels": [      "config-yaml"    ],    "groupId": "io.vertx",    "artifactId": "vertx-config-yaml"  },  {    "name": "Vert.x Configuration with a Zookeeper backend",    "labels": [      "config-zookeeper"    ],    "groupId": "io.vertx",    "artifactId": "vertx-config-zookeeper"  },  {    "name": "Vert.x Configuration with a Redis backend",    "labels": [      "config-redis"    ],    "groupId": "io.vertx",    "artifactId": "vertx-config-redis"  }]

打包項目

集成了 vert.x 插件后,打包變的極其容易,只需要下面的命令:

mvn clean package

通過這種方式就會打出一個 fat jar 包,可以直接通過 java -jar xxxx.jar 運行的包。

其他命令

除了上面這些,還有 vertx:run, vertx:debug, vertx:start, vertx:stop 命令,這些命令可以在不打 jar 包的情況下運行或者關閉項目。

常見問題

通過插件方式運行時,你經常會遇到下面的問題:

[INFO] 嚴重: java.net.BindException: Address already in use: bind

這種情況是因為使用類似 IDEA Maven 插件中的命令直接雙擊運行時,你無法關閉這個應用。如果你使用的純命令行,直接 Ctrl+C 就能關閉。

使用 vertx:run 在命令行運行時可以直接關閉。

使用 vertx:start 運行時,需要通過 vertx:stop 關閉。

萬一遇上無法關閉的情況,在 windows 中,可以用下面方式解決。

在命令行中,輸入下面的命令:

jps -m

這個命令會列出所有運行的 jvm:

15248 Jps -m
2384 Launcher run io.vertx.sample.MyFirstVerticle redeploy-termination-period=1000 -Dvertx.id=5fd656fa-55a9-46b4-8d23-caa95f2e5032-redeploy
8208
11844 Launcher run io.vertx.sample.MyFirstVerticle redeploy-termination-period=1000 -Dvertx.id=bec46d01-d441-4949-a2d9-f8ffbe85f965-redeploy
14200 Launcher run io.vertx.sample.MyFirstVerticle --redeploy=F:/Git/my-first-vertx-app/target/classes/**/* --redeploy-scan-period=1000 redeploy-termi
nation-period=1000 --launcher-class=io.vertx.core.Launcher
7580 Launcher clean compile vertx:run

根據后面的信息找到你想關閉的 jvm。輸入下面的命令(假設關閉 2384):

taskkill /f /pid 2384

當相同端口的 jvm 關閉后,你就可以再次運行了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美成人黄色 | 视频一区二区三区免费观看 | 嗯~啊~用力~高h | 高清视频91| 毛片大全免费 | 久久精品日韩一区 | 国产成人高清成人av片在线看 | 国产成年人小视频 | 日韩av电影免费在线观看 | 日日草日日干 | 亚洲一区成人在线 | 日本aaaa片毛片免费观蜜桃 | 久久91精品国产91久久yfo | 日韩黄色在线播放 | 中文字幕免费在线观看视频 | 日美黄色片 | 姑娘第四集免费看视频 | av在线播放地址 | 91成人免费视频 | 亚洲第一色片 | 91精品国产综合久久婷婷香 | 麻豆视频在线播放 | 一区二区三区欧洲 | 毛片在线免费播放 | 久久老司机| 91成人免费在线视频 | 91av网址 | 黄色网址电影 | a一级黄色大片 | 久久久久久99 | 欧美毛片免费观看 | 国产精品美女久久久免费 | 毛片小网站 | av免费在线免费观看 | 狠狠干网站 | 国产成人网 | 国产 视频 一区二区 | 亚洲精品午夜视频 | 毛片大全免费看 | 国产精品免费观在线 | 99精品视频网站 |