Java Vert.x启动我的应用程序的最佳方式(Vert.x命令行与主方法)

Java Vert.x启动我的应用程序的最佳方式(Vert.x命令行与主方法),java,kotlin,vert.x,Java,Kotlin,Vert.x,我正试图决定在部署垂直板时应该遵循哪条路径。我得出的结论是,我应该把Vr.x视为我的运行时环境,而不是自己创建我的 Vertx < /Cord>实例,并开始从主方法部署我的应用程序。不过,我更喜欢在每个应用程序中都有一个main方法,这让我可以在很大程度上控制我的服务,比如服务发现和其他事情 我在Vertx中找不到关于这一点的文档。或赞成或反对。有人能帮我吗 外壳启动: cd /verticles # the location of the verticle jar vertx run io.v

我正试图决定在部署垂直板时应该遵循哪条路径。我得出的结论是,我应该把Vr.x视为我的运行时环境,而不是自己创建我的<代码> Vertx < /Cord>实例,并开始从主方法部署我的应用程序。不过,我更喜欢在每个应用程序中都有一个main方法,这让我可以在很大程度上控制我的服务,比如服务发现和其他事情

我在
Vertx
中找不到关于这一点的文档。或赞成或反对。有人能帮我吗

外壳启动:

cd /verticles # the location of the verticle jar
vertx run io.vertx.sample.RandomGeneratorVerticle
-cp /verticles/MY_VERTICLE.jar
public static void main(String[] args) {
  Vertx vertx = Vertx.vertx();

  vertx.deployVerticle(
    new DatabaseVerticle(),
    new DeploymentOptions().setConfig(conf)
  )
}
主要方法:

cd /verticles # the location of the verticle jar
vertx run io.vertx.sample.RandomGeneratorVerticle
-cp /verticles/MY_VERTICLE.jar
public static void main(String[] args) {
  Vertx vertx = Vertx.vertx();

  vertx.deployVerticle(
    new DatabaseVerticle(),
    new DeploymentOptions().setConfig(conf)
  )
}

还有另一种选择:使用Vert.x
启动器
类作为应用程序入口点

如果您使用Java/Kotlin/Groovy进行开发,它具有CLI的优点(您可以获得诸如
-cluster
-instances
-conf
)等选项的支持),但您不必到处下载/安装它

如果使用JS/Ruby进行开发,那么使用Vert.x3CLI是有意义的

在Vert.x 4中,不再生成JS和Ruby绑定,因此尽管仍然支持CLI,但使用CLI的意义不大


从长远来看(在Vert.x 5之后,所以不是明天!)CLI可能不受支持。

还有另一种选择:使用Vert.x
Launcher
类作为应用程序入口点

如果您使用Java/Kotlin/Groovy进行开发,它具有CLI的优点(您可以获得诸如
-cluster
-instances
-conf
)等选项的支持),但您不必到处下载/安装它

如果使用JS/Ruby进行开发,那么使用Vert.x3CLI是有意义的

在Vert.x 4中,不再生成JS和Ruby绑定,因此尽管仍然支持CLI,但使用CLI的意义不大


从长远来看(在Vert.x 5之后,所以不是明天!)CLI可能不受支持。

在开发周期中,我使用Gradle来开始

它的主要优点是它具有完全的IDE支持,并且您不必在每次启动verticle时都修改开始选项

您还可以为其他开发人员提供默认的启动方式


在我的应用程序中,我不使用static main()方法,因为它有点违背Groovy的生活方式,并且添加的代码只不过是CLI参数的两倍,CLI参数应该属于配置而不是代码。

在开发周期中,我使用Gradle来开始

它的主要优点是它具有完全的IDE支持,并且您不必在每次启动verticle时都修改开始选项

您还可以为其他开发人员提供默认的启动方式


在我的应用程序中,我不使用
static main()
方法,因为它有点与Groovy的生活方式相矛盾,并且添加的代码只不过是CLI参数的两倍,CLI参数应该属于配置而不是代码。

我的意思是,如果我不需要特殊设置或者我不需要更改设置,是否有明确的原因使我不使用主方法中的Vertx接口?对不起我不明白,你能详细说明一下吗?我的意思是使用这行的缺点是什么;自己创建Vert.x实例的缺点是不支持CLI参数。优点是你能为你的环境获得最大的灵活性,这是有道理的。谢谢,我的意思是,如果我不需要特殊设置,或者我不需要更改设置,是否有明确的原因使我不使用main方法中的Vertx接口?对不起,我不明白,你能详细说明一下吗?我的意思是,使用这一行Vertx Vertx=Vertx.Vertx()的缺点是什么;自己创建Vert.x实例的缺点是不支持CLI参数。优点是你能为你的环境获得最大的灵活性,这是有道理的。非常感谢。