Установил 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 для безопасного и постепенного перехода в Интернет.
Другие вопросы по тегам