【问题标题】:Run Vertx in an IDE在 IDE 中运行 Vertx
【发布时间】:2014-06-18 04:54:43
【问题描述】:

有什么方法可以在 IDE 中运行 Vertx?我知道我可以在文件中创建一个服务器,然后调用

vertx run server.java

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

【问题讨论】:

  • 我建议使用 maven 原型,您会发现一些可以在不同 IDE 中运行的有用目标。

标签: eclipse netbeans intellij-idea ide vert.x


【解决方案1】:
  • 按照manual 所说的那样创建一个 maven 项目。

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

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

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

如果您没有 conf.json,您可以省略它,这只是一个示例,向您展示您可以将启动 Vert.x 的任何其他选项放在那里命令行。

专业提示:如果您的 Verticle 是用另一种语言编写的,请使用以下语言名称的前缀:

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

等等。

【讨论】:

  • io.vertx.core.Starter 在 Vert.x 3.x 中已弃用,请使用 io.vertx.core.Launcher
【解决方案2】:

接受的答案非常好。 为了完整起见,您也可以简单地运行一个普通的旧 java 主类,让 main 启动您的 vertx 实例。

代码应该是这样的:

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

你去。

【讨论】:

  • vertx.deployVerticle(new MainVerticle());
【解决方案3】:

Vert.x 3

我之前编辑过一个较早的答案,但为了清楚起见,我将其分开。

以下示例适用于 Eclipse,但相同的基本前提应该适用于任何 IDE。

设置

  • 设置您的Maven、Gradle 或其他项目并将其导入 Eclipse

  • 创建一个 rundebug 配置,并将 io.vertx.core.Launcher 设置为主类。

  • 参数选项卡中,设置程序参数run org.example.InitVerticle -conf <path to config>;其中org.example.InitVerticle 是您的主要或初始化器,verticle。

调试

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

-Dvertx.options.blockedThreadCheckInterval=2147483647
注意事项

请注意,您的调试可能会在各种情况下触发超时,例如在事件总线上延迟响应的断点。您会看到如下警告:

WARNING: Message reply handler timed out as no reply was received - it will be removed

显然,如果您不小心,这可能意味着调试中的控制流与实际执行中的控制流不同。

【讨论】:

    【解决方案4】:

    我会建议 Fran 已经暗示过的内容。最好从原型 (http://vertx.io/maven_dev.html) 创建 Maven 项目,例如

    mvn archetype:generate -Dfilter=io.vertx: -DgroupId=your.group.id -DartifactId=your-artifact -Dversion=0.0.1-SNAPSHOT
    

    并通过 maven 添加 IDE 细节,例如 Eclipse

    mvn eclipse:eclipse
    

    这样您就可以在 Eclipse 中导入和使用项目了。

    然后要实际启动它,我不会直接使用 Main 或 Starter Verticle,而只是简单地通过 Eclipse 中的 Maven 作为新的运行配置运行它。创建一个新的 Maven 运行配置并设置为目标

    clean compile vertx:runMod
    

    它将启动 mod.json 配置的“Main”类。

    注意:clean compile 不是必需的,但是如果您构建一次并安装了项目的 jars,则自动部署不再起作用,因为它会选择构建而不是开发的代码。

    就像你让示例 PingVerticle 直接运行一样,并且也可以在 mod.json 中启用自动重新部署时胡作非为。

    如果您需要更多、配置等,您可以使用 Starter Verticles、参数甚至将其添加到 pom.xml vertx-maven-plugin。

    我希望这会有所帮助。

    最好的

    【讨论】:

      【解决方案5】:

      我下面的设置是在 IntelliJ 15.0.1 和 vert.x 3.2.0 for Java 上完成的

      1. 下载并解压 vertx 库 (http://vertx.io/download/) 到某处
      2. 在 IntelliJ,“新项目”-> 选择 Java 和 Project SDK 1.8 -> 下一步
      3. 选中“从模板创建项目”和“命令行应用程序”-> 下一步
      4. 输入你想要的“项目名称” -> 完成
      5. “文件”->“项目结构...”->选择“库”
      6. '+'(新项目库)-> 'Java'-> 添加 (某处)/vert.x-3.2.0-full/lib -> 'OK'
      7. 添加新的Verticle,如:

        public class HiVerticle extends AbstractVerticle {
        @Override
        public void start() throws Exception {
            super.start();
            System.out.println("Hi");
        }}
        
      8. 'Run' -> 'Edit Configurations...' -> 将 'Main class:' 替换为 'io.vertx.core.Launcher',

        输入 'run cchcc.hi.HiVerticle' at '程序参数:' -> 'OK'

      9. 运行和调试!

      result

      【讨论】:

        【解决方案6】:

        如果您正在寻找除了创建 maven 项目之外的选项(在其他答案中建议),您可以执行以下操作:

        • http://vertx.io/downloads.html下载最新版本
        • 解压并将 lib 文件夹中的所有 JAR 添加到项目的库中,即添加到类路径中
        • 使用 org.vertx.java.platform.impl.cli.Starter 作为 Main 类为您的项目创建运行配置。
        • 添加 run your.package.Server -cp ${project_loc:/YourProject}/bin 作为运行配置的参数。
        • 使用新创建的运行配置运行您的项目!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-03
          • 2014-08-07
          • 1970-01-01
          • 2022-01-06
          • 1970-01-01
          相关资源
          最近更新 更多