Установил jSweet. Что теперь?
У меня есть проект Java, который я хочу преобразовать в Typescript (около 150 файлов).
Согласно http://www.jsweet.org/getting-started/
... Я проверил проект jsweet Github.
... Я запустил Mvn Generated-SRC
... Я загрузил index.html, и он дал мне "Это работает!"
Что теперь? Очень неясно, что будет дальше.
В идеале я бы предположил, что есть какой-нибудь исполняемый файл, например. converter.java, где вы бы указали входной и выходной каталог. Я не вижу, чтобы это объяснили нигде.
1 ответ
Я думаю, что этот вопрос должен быть "Как перенести проект Java в TypeScript с помощью JSweet".
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Основная цель 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, что генерировать и где. Смотрите полный список опций плагина здесь. Итак, согласно 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
вариант, вы найдете сгенерированный код TypeScript в target/ts
каталог.
Итак, чтобы перевести оттуда полную Java-программу, вам нужно скопировать и вставить свой исходный код Java в src/main/java
, Затем снова запустите mvn generate-sources
,
Обратите внимание, что для успешного выполнения этой команды ваши файлы Java должны сначала скомпилироваться с точки зрения Java. Это означает, что если ваши исходные файлы Java используют другие библиотеки Java, они должны быть доступны в вашем classpath. Итак, как и любой Java-проект под Maven, вам нужно настроить <dependencies>
раздел в вашем pom.xml
,
Использование внешних библиотек Java может быть проблемой, потому что эти библиотеки Java, вероятно, не доступны в JSweet/TypeScript. Таким образом, вполне вероятно, что вы получите файлы TypeScript, сгенерированные в вашем target/ts
каталог, но это будет сообщать о многих ошибках из-за использования несуществующих API в TypeScript.
Оттуда вы можете либо:
- Возьмите код TypeScript как есть и завершите преобразование вручную (это означает, что вам нужно реорганизовать свой код, чтобы использовать допустимые API TypeScript, а не Java). Вероятно, это предпочтительный вариант, если вы хотите переключиться на TypeScript и удалить базу исходного кода Java.
- Предоставьте реализацию JSweet API Java, которые вы используете, аналогично проекту J4TS. В этом видео показано подтверждение концепции реализации API апплета в JSweet. Это может быть хорошим вариантом, если вы хотите продолжать работать в Java с JSweet и использовать инструментарий Java для безопасного и постепенного перехода в Интернет.