web-dev-qa-db-fra.com

Comment démarrer le serveur Vert.x à partir d'IntelliJ IDEA?

Comment démarrer un simple serveur Vert.x depuis IntelliJ IDEA?

Ma build.gradle est comme ci-dessous:

apply plugin: 'Java'

version = '3.0.0'

repositories {
    mavenCentral()
}

dependencies {
    compile 'io.vertx:vertx-core:3.0.0'
}

Mon serveur Vertx, MyVertex.Java est comme ci-dessous:

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);
    }
}

Et ma configuration d'exécution IntelliJ est comme ci-dessous, avec io.vertx.core.Startercomme classe principale: enter image description here

Mais lorsque je l'exécute avec ma configuration d'exécution, j'obtiens ce message d'erreur:

Error: Could not find or load main class run

L'option VM (dans la configuration Exécuter) run est-elle quelque chose que je dois installer et ajouter à mon chemin d'accès ou comment démarrer avec le développement Vert.x-server?

20
Jonas

J'utilise vertx 3.2.1 et il se plaint de io.vertx.core.Starter. C'est obsolète maintenant. Donc, il faut utiliser io.vertx.core.Launcher.

Voici un exemple de lancement via intellij avec la possibilité de spécifier un fichier de configuration JSON:

  • Classe principale: io.vertx.core.Launcher
  • Options VM: <up to you, or leave blank>
  • Arguments du programme: run com.app.verticle.MyVerticle -conf /path/to/my_config.json

Lorsque vous utilisez un cadre de journalisation, il sera ajouté dans VM Options comme ci-dessous.

Log4j avec delgate log4j ou slf4j:

-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
34
corindiano

Ajoutez simplement ceci à votre MyVerticle (ou à une classe séparée):

import io.vertx.core.Launcher;
...
public static void main(final String[] args) {
    Launcher.executeCommand("run", MyVerticle.class.getName());
}

Alors simplement Ctrl+Shift+F10 pour l'exécuter et IntelliJ créera automatiquement le Run Configuration.

14
Jared Weinfurtner

Ah, mon erreur:

run com.example.MyVerticle doit être la valeur de Arguments du programme: et non pas comme Options VM dans IntelliJ IDEA Exécuter la configuration.

7
Jonas

Vous pouvez simplement ajouter un main et utiliser deployVerticle () puis à partir de là dans IntelliJ, vous pouvez l'exécuter ou le déboguer facilement. Avec deployVerticle, vous pouvez passer une nouvelle instance de votre verticle principal/bootstrap ou vous pouvez passer yourMainVerticle.class

public class VertxVerticleMain {

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

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

    }
}
3
Gob00st

Vous devez utiliser ceci: org.vertx.Java.platform.impl.cli.Starter comme classe principale dans IntelliJ IDEA; et si vous utilisez des arguments et des choses comme ça, vous voudrez peut-être utiliser quelque chose comme: runmod <groupId>~<artifactId>~<version> [-conf src/main/resources/your_config.json -cp]

Jetez un oeil à ce projet .

Pour Vert.x 3.0.0, vous devez utiliser ceci: io.vertx.core.Starter comme classe principale et run com.example.other.AnyVerticle comme arguments de votre programme.

2
x80486