发布于:2021-01-15 10:50:04
0
185
0
如果您是需要从头开始编写Web前端的Java开发人员,TeaVM是Java字节码到JavaScript的提前编译器,可能会派上用场。但是,如果您想使用Java或Kotlin获得现有的大型代码库并生成JavaScript,那么您来错了地方。
Java开发人员,您的工具箱是什么样的?如果您需要从头开始编写Web前端,这里还有一个工具可能会派上用场。 TeaVM是Java字节码的提前编译,并且能够发出JavaScript和WebAssembly。
尽管其“近亲”是GWT,但不同之处在于“ TeaVM依赖于现有的编译器,无论是javac,kotlinc还是scalac”。这些编译器产生的字节码(*.class 或 *.jar 文件),然后TeaVM借此字节码,并产生JavaScript代码,”根据项目描述。
如果您是曾经编写后端代码的Java(或Kotlin或Scala)开发人员,那么TeaVM可能是您的选择。一个优秀的开发人员(包括Java开发人员)确实可以学习JavaScript。但是,要成为专家,您必须花费合理的时间。
你可以在以下情况使用TeaVM:
您是一名Java开发人员,您将从头开始编写web前端。
您已经有了基于java的后端,并且希望将前端代码紧密地集成到现有的开发基础设施中。
您需要在前端重用一些Java后端代码。
您已经准备好重写代码以与TeaVM一起工作了。
TeaVM的优点:
它尝试重建方法的原始结构,因此在大多数情况下,它会生成您需要手工编写的JavaScript。没有臃肿的while/switch语句,不熟悉的编译器通常会这样做。
它支持线程。
它是快的
它生成源图;teamm IDEA插件允许在IDE中调试代码。
还有一个子项目叫做Flavour。
它是什么:一个编写单页web应用程序的框架(可以与后端代码一起使用)
它不是什么:一个服务器端框架。你应该使用像OpenJDK这样的“普通”JDK来编写后端代码,或者使用你喜欢的框架来编写Oracle JDK。
运行TeaVM最简单的方法是使用TeaVM -maven-plugin。这里有一个例子:
<project> ... <build> <plugins> <plugin> <groupId>org.teavm</groupId> <artifactId>teavm-maven-plugin</artifactId> <version>0.5.1</version> <dependencies> <!-- This dependency is required by TeaVM to emulate subset of Java class library --> <dependency> <groupId>org.teavm</groupId> <artifactId>teavm-classlib</artifactId> <version>0.5.1</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>compile</goal> </goals> <phase>process-classes</phase> <configuration> <mainClass>org.teavm.samples.HelloWorld</mainClass> <mainPageIncluded>true</mainPageIncluded> <debugInformationGenerated>true</debugInformationGenerated> <sourceMapsGenerated>true</sourceMapsGenerated> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
作者介绍