2016-08-31 3 views
2

У меня есть проект java, который я хочу преобразовать в Typcript (около 150 файлов).Установлен jSweet. Что теперь?

По http://www.jsweet.org/getting-started/

... Я проверил jsweet проект GitHub.

... Я побежал МВНОВ генерируемого ЦСИ

... Я загрузил index.html, и он дал мне "Это работает!

Теперь что? Очень неясно, что будет дальше.

В идеале я бы предположил, что есть какой-нибудь исполняемый файл, например. converter.java, где вы должны указать входной и выходной каталог. Я не вижу, чтобы это объяснялось где угодно.

ответ

7

Я думаю, что этот вопрос должен быть «Как перевести 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 для безопасного и постепенного перехода в Интернет.
Смежные вопросы