Я думаю, что этот вопрос должен быть «Как перевести Java-проект на TypeScript с помощью JSweet».
DISCLAMER: Основная цель JSweet - не преобразовывать существующие программы Java в TypeScript. Однако, поскольку JSweet создает промежуточный код типа TypeScript, его можно использовать в качестве помощника для переноса программ Java на TypeScript. Конечно, эта миграция будет полностью работать только в том случае, если библиотеки Java также доступны в JavaScript, иначе вам придется предоставить реализацию или вручную изменить используемые библиотеки на существующие JavaScript.
Вы действительно можете начать с проекта QuickStart на Github. Когда вы запускаете mvn generate-sources
, происходит то, что источники Java в src/main/java
передаются в TypeScript. Процесс генерации JSweet настроен в файле pom.xml
с плагином Maven JSweet. Здесь вы можете рассказать JSweet, что генерировать и где. См. Полный список параметров плагина here. Так, в соответствии с файлом pom.xml
, JSweet сконфигурирован как:
<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>
[...]
Из опции tsOut
, вы найдете сгенерированный код машинопись в каталоге target/ts
.
Итак, для перевода полной Java-программы оттуда вам нужно скопировать-вставить исходный код Java в пределах src/main/java
. Затем снова запустите mvn generate-sources
.
Обратите внимание, что для успешной реализации этой команды ваши файлы Java сначала необходимо скомпилировать с точки зрения Java. Это означает, что если ваши исходные файлы Java используют другие библиотеки Java, они должны быть доступны в вашем пути к классам. Итак, как и любой проект Java под Maven, вам необходимо настроить раздел <dependencies>
в вашем pom.xml
.
Использование внешних библиотек Java может быть проблемой, поскольку эти библиотеки Java, вероятно, недоступны в JSweet/TypeScript. Таким образом, вероятно, вы получите файлы TypeScript, сгенерированные в вашем каталоге target/ts
, но что транспиляция сообщит о многих ошибках из-за использования несуществующих API в TypeScript.
Оттуда вы можете:
- Возьмите код машинописи как и завершить преобразование вручную (что означает, что вам нужно реорганизовать код, чтобы использовать действительную машинопись API, а не Java из них). Вероятно, это предпочтительный вариант, если вы хотите переключиться на TypeScript и удалить базу исходного кода Java.
- Предоставьте реализацию JSweet API Java, которую вы используете, аналогичным образом делает проект J4TS. В этом video приведено доказательство того, как реализовать API-интерфейс апплета в JSweet. Это может быть хорошим вариантом, если вы хотите продолжать работать на Java с JSweet и использовать инструменты Java для безопасного и постепенного перехода в Интернет.