亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲一区在线观看| 精品亚洲一区二区三区在线观看| 狠狠色狠狠色综合日日五| 日韩精品视频在线播放| 亚洲欧美日韩国产成人| 亚洲精品视频网上网址在线观看| 热99久久精品| 国产区精品在线观看| 亚洲精品国产福利| 久久综合国产精品台湾中文娱乐网| 欧美激情啊啊啊| 91夜夜揉人人捏人人添红杏| 国产精品白丝av嫩草影院| 亚洲美女黄色片| 欧美激情第1页| 亚洲国产精品成人一区二区| 欧美在线一级视频| 性欧美视频videos6一9| 欧美亚洲伦理www| 亚洲精品免费网站| 亚洲最大成人免费视频| 91久久在线视频| 久久精品91久久久久久再现| 日韩网站免费观看高清| 亚洲毛片在线观看| 日韩欧美中文免费| 91精品综合久久久久久五月天| 久久亚洲精品中文字幕冲田杏梨| 国产一区二区黑人欧美xxxx| 国产精品极品美女粉嫩高清在线| 成人免费看吃奶视频网站| 亚洲成年人在线播放| 国产丝袜高跟一区| 国产精品69精品一区二区三区| 欧美理论电影在线播放| 色婷婷成人综合| 日韩成人激情影院| 日产精品久久久一区二区福利| 国产亚洲欧美一区| 亚洲日本欧美日韩高观看| 在线成人中文字幕| 中文字幕亚洲欧美日韩在线不卡| 成人欧美一区二区三区在线湿哒哒| 成人黄色中文字幕| 91精品国产成人www| 国产不卡av在线| 亚洲国产精久久久久久| 国产精品一区二区av影院萌芽| 日本免费在线精品| 午夜精品久久久久久99热| 国产精品入口夜色视频大尺度| 日韩av在线电影网| 日本精品视频网站| 国产精品草莓在线免费观看| 精品国产精品三级精品av网址| 久久九九亚洲综合| 国产91精品久久久久| 在线观看国产欧美| 日韩国产高清视频在线| 亚洲国产精品va在线看黑人| 国产亚洲精品综合一区91| 久久亚洲春色中文字幕| 亚洲男人天堂2023| 自拍偷拍免费精品| 亚洲午夜av电影| 国产精品久久久久久久久久新婚| 成人在线视频网| 国产精品永久免费| 91久久精品日日躁夜夜躁国产| 成人观看高清在线观看免费| 人人爽久久涩噜噜噜网站| 国产97免费视| 亚洲字幕在线观看| 久久精品人人做人人爽| 九九热这里只有在线精品视| 国产精品成人一区二区三区吃奶| 久久久女人电视剧免费播放下载| 久久精彩免费视频| 亚洲综合在线播放| 亚洲成人久久久久| 精品久久久久久中文字幕一区奶水| 成人精品久久av网站| 成人免费福利在线| 国产在线精品自拍| 欧美高清激情视频| 亚洲精品欧美一区二区三区| 欧美日韩国产成人高清视频| 亚洲永久免费观看| 欧美日韩国产中文精品字幕自在自线| 国产69精品久久久久9| 98精品国产高清在线xxxx天堂| 97av在线视频免费播放| 一二美女精品欧洲| 亚洲第一在线视频| 日韩精品视频在线| 日韩精品一区二区视频| 成人国产精品久久久久久亚洲| 亚洲国产欧美一区| 伊人青青综合网站| 国产美女扒开尿口久久久| 久久五月天色综合| 97在线视频免费看| 大荫蒂欧美视频另类xxxx| 91chinesevideo永久地址| 视频在线观看一区二区| 色综合久久精品亚洲国产| 国产精品96久久久久久又黄又硬| 欧美日韩国产影院| 国产精品欧美激情| 亚洲最大的成人网| 成人免费在线视频网址| 久久成人人人人精品欧| 日韩av在线最新| 成人免费看黄网站| 亚洲理论片在线观看| 亚洲精品免费一区二区三区| 欧美黄色片在线观看| 久久视频国产精品免费视频在线| 亲子乱一区二区三区电影| 中文字幕亚洲一区在线观看| 国产丝袜一区二区三区免费视频| 亚洲少妇激情视频| 亚洲精品色婷婷福利天堂| 亚洲欧美视频在线| 亚洲人精选亚洲人成在线| 欧美日韩国产一中文字不卡| 国产精品入口尤物| 日本国产精品视频| 最新中文字幕亚洲| 亚洲国产精品视频在线观看| 久久亚洲精品国产亚洲老地址| 久久人人97超碰精品888| 91九色国产视频| 国产情人节一区| 亚洲成人精品视频在线观看| 久久伊人免费视频| 91av在线影院| 午夜精品一区二区三区视频免费看| 日韩视频―中文字幕| 国产精品美乳一区二区免费| 久久精品视频网站| 中文字幕无线精品亚洲乱码一区| 国产亚洲成av人片在线观看桃| 97**国产露脸精品国产| 91国产视频在线播放| 国产人妖伪娘一区91| 91亚洲国产成人久久精品网站| 国产午夜精品一区理论片飘花| 狠狠躁夜夜躁久久躁别揉| 国产精品美乳在线观看| 国产亚洲欧洲黄色| 亚洲美女av网站| 97婷婷大伊香蕉精品视频| 97在线精品视频| 久久久精品久久| 清纯唯美亚洲综合| 久久精品99国产精品酒店日本| 亚洲一区二区三区乱码aⅴ| 韩国三级日本三级少妇99| 欧美成人在线免费视频| 中文字幕亚洲欧美| 久久久国产视频| 欧美日韩免费观看中文| 91在线视频精品|