这感觉就像一个XY 问题。您想知道如何动态编译 Kotlin,以便通过从 Kotlin 源文件而不是编译代码运行来更轻松地使用 Vert.x。但实际上 Vert.x 使用的推荐路径是创建一段简单的代码,在编译的代码中部署 Verticle。
在这个问题中,您的语言支持链接在路径“vertx.io/vertx2/language_support.html”中显示Vert.x 2;这与现在 Vert.x 3 中的做法不同。我认为您正在将两种想法合并为一种。首先,Vert.x 3 希望您从源代码运行 Java/Kotlin 文件(实际上并非如此;这是 Vert.x 2 中他们从编译语言中删除的东西),其次您需要自定义语言支持(您不)。
您应该尝试通过运行编译的代码来使用 Vert.x 3。 为此,请构建您的类并运行您自己的类main()
,以编程方式部署 Verticle。您的代码很简单:
import io.vertx.core.Vertx
fun main(args: Array<String>) {
val vertx = Vertx.vertx()
vertx.deployVerticle(SomeVerticleOfMine())
}
Run Code Online (Sandbox Code Playgroud)
或者,从命令行运行和部署的文档说:
Vert.x 将在运行之前动态编译 Java 源文件。这对于快速制作 verticle 原型非常有用,并且非常适合演示。无需先设置 Maven 或 Gradle 构建即可开始!
实际上,它确实只是用于原型设计和快速测试,并且它并不比让您的 IDE 执行相同操作并从已编译的类运行更快。然后,您还可以使用 IDE 的调试功能,这是非常有价值的。
有关将 Kotlin 与 Vert.x 结合使用的一些帮助程序库,请查看以下选项:
有一个运行 Vert.x + Kovert 的完整示例项目(具体从App 类开始)。您可以查看 Kovert 的代码来完成您自己的类似工作,使用 Promises 或您希望的方式很好地启动和运行 Vert.x。Kovert 的文档包含用于启动 Vertx以及启动 Verticle 以使用 Vert.x-Web 的代码链接,因此您可以阅读更多示例代码。但它有助于理解Injekt(轻量级依赖项注册表)、Kovenant(承诺库)和Klutter 配置注入以理解完整的示例。
其他快速说明,Vert.x 对其他语言有 codegen 支持,但由于您可以直接调用所有 Java 版本,因此它也不需要支持 Kotlin。
归档时间: |
|
查看次数: |
2960 次 |
最近记录: |