中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

如果您是需要從頭開始編寫Web前端的Java開發(fā)人員,則此工具會派上用場

發(fā)布于:2021-01-15 10:50:04

0

211

0

Java JavaScript Web前端

如果您是需要從頭開始編寫Web前端的Java開發(fā)人員,TeaVM是Java字節(jié)碼到JavaScript的提前編譯器,可能會派上用場。但是,如果您想使用Java或Kotlin獲得現(xiàn)有的大型代碼庫并生成JavaScript,那么您來錯了地方。

Java開發(fā)人員,您的工具箱是什么樣的?如果您需要從頭開始編寫Web前端,這里還有一個工具可能會派上用場。 TeaVM是Java字節(jié)碼的提前編譯,并且能夠發(fā)出JavaScript和WebAssembly。

盡管其“近親”是GWT,但不同之處在于“ TeaVM依賴于現(xiàn)有的編譯器,無論是javac,kotlinc還是scalac”。這些編譯器產(chǎn)生的字節(jié)碼(*.class 或 *.jar 文件),然后TeaVM借此字節(jié)碼,并產(chǎn)生JavaScript代碼,”根據(jù)項目描述。

如果您是曾經(jīng)編寫后端代碼的Java(或Kotlin或Scala)開發(fā)人員,那么TeaVM可能是您的選擇。一個優(yōu)秀的開發(fā)人員(包括Java開發(fā)人員)確實(shí)可以學(xué)習(xí)JavaScript。但是,要成為專家,您必須花費(fèi)合理的時間。

你可以在以下情況使用TeaVM:

  • 您是一名Java開發(fā)人員,您將從頭開始編寫web前端。

  • 您已經(jīng)有了基于java的后端,并且希望將前端代碼緊密地集成到現(xiàn)有的開發(fā)基礎(chǔ)設(shè)施中。

  • 您需要在前端重用一些Java后端代碼。

  • 您已經(jīng)準(zhǔn)備好重寫代碼以與TeaVM一起工作了。

TeaVM的優(yōu)點(diǎn):

  • 它嘗試重建方法的原始結(jié)構(gòu),因此在大多數(shù)情況下,它會生成您需要手工編寫的JavaScript。沒有臃腫的while/switch語句,不熟悉的編譯器通常會這樣做。

  • 它支持線程。

  • 它是快的

  • 它生成源圖;teamm IDEA插件允許在IDE中調(diào)試代碼。

還有一個子項目叫做Flavour。

它是什么:一個編寫單頁web應(yīng)用程序的框架(可以與后端代碼一起使用)

它不是什么:一個服務(wù)器端框架。你應(yīng)該使用像OpenJDK這樣的“普通”JDK來編寫后端代碼,或者使用你喜歡的框架來編寫Oracle JDK。

運(yùn)行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>