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.Starter
asメインクラス:
しかし、実行構成で実行すると、次のエラーメッセージが表示されます。
Error: Could not find or load main class run
VMオプション(実行構成))run
は、インストールしてパスに追加する必要があるものですか、またはVert.xサーバー開発を開始するにはどうすればよいですか?
私はvertx 3.2.1を使用していますが、io.vertx.core.Starter
について文句を言っています。廃止されました。したがって、io.vertx.core.Launcher
を使用する必要があります。
これは、設定JSONファイルを指定するオプションを使用して、intellijを介して起動する例です。
io.vertx.core.Launcher
<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
これを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
は、Program arguments:の値であり、IntelliJのVMオプションとしてではなく、IDEA実行構成。
メインを追加して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);
}
}
これを使用する必要があります: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
をプログラムの引数として。