この質問は「JavaプロジェクトをJSweetを使用してTypeScriptに変換する方法」だと思います。
DISCLAMER:JSweetの主な目的は、既存のJavaプログラムをTypeScriptに変換することではありません。しかし、JSweetは中間のTypeScriptコードを生成するので、JavaプログラムをTypeScriptに移行するためのヘルパーとして使用できます。もちろん、この移行は、JavaライブラリもJavaScriptで利用できる場合にのみ完全に機能します。そうでない場合は、実装を提供するか、使用されたライブラリを既存のJavaScriptライブラリに手動で変更する必要があります。
実際にGithubのクイックスタートプロジェクトから始めることができます。 mvn generate-sources
を実行すると、src/main/java
のJavaソースがTypeScriptに変換されます。 JSweet生成プロセスは、Maven JSweetプラグインを使用してpom.xml
ファイルに設定されています。ここでは、JSweetに何を生成するのか、どこにどこを伝えることができるのですか?プラグインhereの完全なオプションリストを参照してください。
があるため
tsOut
オプションの
<plugin>
<groupId>org.jsweet</groupId>
<artifactId>jsweet-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<verbose>true</verbose>
<tsOut>target/ts</tsOut>
<outDir>target/js</outDir>
<candiesJsOut>webapp</candiesJsOut>
<targetVersion>ES3</targetVersion>
</configuration>
[...]
、あなたがtarget/ts
ディレクトリ内に生成された活字体コードを見つけます:だから、pom.xml
ファイルによると、JSweetは次のように設定されています。
したがって、完全なJavaプログラムをそこから翻訳するには、src/main/java
内のJavaソースコードをコピーして貼り付ける必要があります。次に、再度実行してくださいmvn generate-sources
。
このコマンドを成功させるには、まずJavaファイルをJavaの観点からコンパイルする必要があることに注意してください。つまり、Javaソースファイルで他のJavaライブラリを使用している場合は、クラスパスで使用できる必要があります。したがって、Mavenの下にあるJavaプロジェクトのように、pom.xml
に<dependencies>
セクションを設定する必要があります。
これらのJavaライブラリはJSweet/TypeScriptでは使用できない可能性があるため、外部Javaライブラリを使用することは問題になります。したがって、target/ts
ディレクトリに生成されたTypeScriptファイルを取得する可能性がありますが、TypeScriptの存在しないAPIを使用するため、transpilationは多くのエラーを報告します。そこから
は、次のことができ、次のいずれか
- があるとして、活字体のコードを取り、(あなたは、Javaのものではなく、有効な活字体のAPIを使用するようにコードをリファクタリングする必要があることを意味する)、手動で変換を終了します。これは、TypeScriptに切り替えてJavaソースコードのベースをゴミ箱に入れたい場合には、おそらくあなたが好むオプションです。
- 使用しているJava APIのJSweet実装を提供します。同様の方法で、J4TSプロジェクトが行います。このvideoは、JSweetでアプレットAPIを実装する方法の概念実証を示しています。これは、JSweetを使用してJavaで作業し、Javaツールを使用して安全かつ徐々にWebに移行したい場合には、良い選択肢になります。