Как начать Vert.X сервер от IntelliJ IDEA?

как начать простой Vert.X сервер изнутри идеи IntelliJ?

мой 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как основной класс: enter image description here

но когда я запускаю его с моей конфигурацией запуска, я получаю это сообщение об ошибке:

Error: Could not find or load main class run

является опцией VM (в конфигурации запуска) run что-то мне нужно установите и добавьте в мой путь или как начать работу с Vert.разработка x-сервера?

5 ответов


Я использую 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, как показано ниже.

настройки log4j с помощью log4j или 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

просто добавьте это в ваш 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.


Ах, моя ошибка:

run com.example.MyVerticle должно быть значение аргументы: а не параметры VM в конфигурации запуска IntelliJ IDEA.


вы можете просто добавить main и использовать deployVerticle (), а затем оттуда в IntelliJ вы можете легко запустить или отладить его. С помощью deployVerticle вы можете передать новый экземпляр своей основной / загрузочной вертикали или передать yourMainVerticle.класс!--2-->

public class VertxVerticleMain {

    public static void main(String[] args) {
        Vertx vertx = Vertx.vertx();

        vertx.deployVerticle(new MyVerticle());
       //vertx.deployVerticle(MyVerticle.class);

    }
}

вы должны использовать это: 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 в качестве аргументов программы.