Как запустить сервер Vert.x от IntelliJ IDEA?
Как мне запустить простой сервер Vert.x внутри IntelliJ IDEA?
Мой build.gradle
выглядит следующим образом:
apply plugin: 'java'
version = '3.0.0'
repositories {
mavenCentral()
}
dependencies {
compile 'io.vertx:vertx-core:3.0.0'
}
Мой Vertx-сервер, MyVertex.java
выглядит следующим образом:
package com.example;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Future;
public class MyVerticle extends AbstractVerticle {
@Override
public void start(Future<Void> fut) {
vertx.createHttpServer()
.requestHandler(r -> r.response().end("<h1>Hello</h1>"))
.listen(8081);
}
}
И моя конфигурация запуска IntelliJ такова, как показано ниже, с io.vertx.core.Starter
в качестве основного класса:
![введите описание изображения здесь]()
Но когда я запускаю его с моей конфигурацией запуска, я получаю это сообщение об ошибке:
Error: Could not find or load main class run
Является ли опция VM (в конфигурации запуска) run
чем-то, что мне нужно установить и добавить на мой путь или как начать работу с разработкой Vert.x-сервера?
Ответы
Ответ 1
Я использую vertx 3.2.1 и жалуюсь на io.vertx.core.Starter
. Теперь это устарело. Таким образом, следует использовать io.vertx.core.Launcher
.
Это пример запуска через intellij с возможностью указания файла конфигурации JSON:
- Основной класс:
io.vertx.core.Launcher
- Параметры VM:
<up to you, or leave blank>
- Аргументы программы:
run com.app.verticle.MyVerticle -conf /path/to/my_config.json
При использовании структуры ведения журнала он будет добавлен в VM Options, как показано ниже.
Log4j с лог4j или slf4j delgate:
-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.Log4jLogDelegateFactory -Dlog4j.configuration=log4j.xml
-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.SLF4JLogDelegateFactory -Dlog4j.configuration=log4j.xml
Logback:
-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.SLF4JLogDelegateFactory -Dlogback.configurationFile=logback.xml
Ответ 2
Просто добавьте это в свой MyVerticle
(или отдельный класс):
import io.vertx.core.Launcher;
...
public static void main(final String[] args) {
Launcher.executeCommand("run", MyVerticle.class.getName());
}
Затем просто Ctrl+Shift+F10
, чтобы запустить его, и IntelliJ автоматически создаст Run Configuration
.
Ответ 3
А, моя ошибка:
run com.example.MyVerticle
должно быть значением аргументов программы, а не параметрами VM в конфигурации запуска IntelliJ IDEA.
Ответ 4
Вы должны использовать это: org.vertx.java.platform.impl.cli.Starter
в качестве основного класса в IntelliJ IDEA; и если вы используете аргументы и что-то подобное, вы можете использовать что-то вроде: runmod <groupId>~<artifactId>~<version> [-conf src/main/resources/your_config.json -cp]
Посмотрите на этот проект.
Для Vert.x 3.0.0 вы должны использовать это: io.vertx.core.Starter
как ваш основной класс и run com.example.other.AnyVerticle
в качестве аргументов вашей программы.
Ответ 5
Вы можете просто добавить главное и использовать deployVerticle(), а затем оттуда в IntelliJ вы можете легко запустить или отладить его.
С deployVerticle вы можете передать новый экземпляр вашей главной/загрузочной вершины или вы можете передать yourMainVerticle.class
public class VertxVerticleMain {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new MyVerticle());
//vertx.deployVerticle(MyVerticle.class);
}
}