在IDE中运行Vertx

j w*_*ill 14 eclipse ide netbeans intellij-idea vert.x

有没有办法在IDE中运行Vertx?我知道我可以在文件中创建服务器然后调用

vertx run server.java
Run Code Online (Sandbox Code Playgroud)

从命令行,但是有没有办法从IDE中运行server.java文件?

ssc*_*zio 29

  • 手册说,创建一个maven项目.

  • 然后将项目导入为Maven项目

  • 使用主类创建一个新的启动器(Eclipse)

    • 对于Vert.x 2.x:" org.vertx.java.platform.impl.cli.Starter "
    • 对于Vert.x 3.x:" io.vertx.core.Starter "
  • 在"程序参数"选项卡中键入:" 运行your.package.ServerVerticle -conf conf.json "

如果你没有conf.json,你可以省略它.这只是一个例子,向你展示你可以放置任何其他你从命令行启动Vert.x的选项.

PRO TIP:如果您的Verticle是用另一种语言编写的,请使用带有该语言名称的前缀,如下所示:

  • " 运行scala:com.acme.MainVerticle -conf conf.json "
  • " 运行jython:MainVerticle.py -conf conf.json "
  • " run jruby:MainVerticle.rb -conf conf.json "
  • " run rhino:MainVerticle.js -conf conf.json "
  • " 运行groovy:MainVerticle.groovy -conf conf.json "

等等.

  • 在Vert.x 3.x中不推荐使用`io.vertx.core.Starter`,使用`io.vertx.core.Launcher` (8认同)

Psy*_*syx 15

接受的答案非常好.只是出于完整性的考虑,你也可以运行一个普通的旧java主类,主要启动你的vertx实例.

代码应该是这样的:

public static void main(final String... args) {
    Vertx vertx = Vertx.vertx();
    vertx.deployVerticle(/* put your stuff here */);
}
Run Code Online (Sandbox Code Playgroud)

你去吧

  • vertx.deployVerticle(new MainVerticle()); (2认同)

Mar*_*avy 9

Vert.x 3

我之前编辑过一个早期的答案,但是为了清晰起见,我将它分开了.

以下示例适用于eclipse,但同一基本前提应适用于任何IDE.

建立

  • 设置Maven,Gradle或其他项目并将其导入Eclipse

  • 创建运行调试配置,并设置io.vertx.core.Launcher为主类.

  • 参数选项卡中,设置程序参数:run org.example.InitVerticle -conf <path to config>; 这里org.example.InitVerticle是你的主,或intialiser,verticle.

调试

在Vert.x 3中进行调试期间,您可能会注意到被阻塞的线程监视程序会不断地将警告(以及最终的异常)输出到控制台上.虽然在生产过程中很有用,但您可以通过在调试配置的VM参数中设置以下属性来禁止此行为:

-Dvertx.options.blockedThreadCheckInterval=2147483647
Run Code Online (Sandbox Code Playgroud) 注意事项

请注意,您的调试可能会在各种情况下触发超时,例如断点延迟对事件总线的回复.你会看到像这样的警告:

WARNING: Message reply handler timed out as no reply was received - it will be removed
Run Code Online (Sandbox Code Playgroud)

显然,如果您不小心,这可能意味着调试下的控制流程不同于实际执行.