web-dev-qa-db-ja.com

IntelliJ IDEAからVert.xサーバーを起動する方法は?

IntelliJ IDEA内から簡単なVert.xサーバーを起動するにはどうすればよいですか?

俺の 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.Starterasメインクラス: enter image description here

しかし、実行構成で実行すると、次のエラーメッセージが表示されます。

Error: Could not find or load main class run

VMオプション(実行構成))runは、インストールしてパスに追加する必要があるものですか、またはVert.xサーバー開発を開始するにはどうすればよいですか?

20
Jonas

私はvertx 3.2.1を使用していますが、io.vertx.core.Starterについて文句を言っています。廃止されました。したがって、io.vertx.core.Launcherを使用する必要があります。

これは、設定JSONファイルを指定するオプションを使用して、intellijを介して起動する例です。

  • メインクラス: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またはslf4jデルゲートのあるLog4j:

-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

ログバック:

-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.SLF4JLogDelegateFactory -Dlogback.configurationFile=logback.xml
34
corindiano

これを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

14

ああ、私の間違い:

run com.example.MyVerticleは、Program arguments:の値であり、IntelliJのVMオプションとしてではなく、IDEA実行構成。

7
Jonas

メインを追加してdeployVerticle()を使用するだけで、そこからIntelliJで簡単に実行またはデバッグできます。 deployVerticleでは、メイン/ブートストラップバーティクルの新しいインスタンスを渡すことができます。または、mainVerticle.classを渡すことができます

public class VertxVerticleMain {

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

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

    }
}
3
Gob00st

これを使用する必要があります:org.vertx.Java.platform.impl.cli.Starter IntelliJ IDEAのメインクラスとして。引数などを使用している場合は、次のようなものを使用できます。runmod <groupId>~<artifactId>~<version> [-conf src/main/resources/your_config.json -cp]

これをご覧ください project

Vert.x 3.0.0では、これを使用する必要があります:io.vertx.core.Starterをメインクラスとして、run com.example.other.AnyVerticleをプログラムの引数として。

2
x80486