2016-08-31 1 views
2

J'ai un projet Java que je veux convertir en Typescript (environ 150 fichiers).JSweet installé. Maintenant quoi?

Comme par http://www.jsweet.org/getting-started/

... J'ai vérifié le jsweet projet Github.

... Je couru mvn généré-src

... Je chargé index.html et il m'a donné 'Ça marche!'

Maintenant quoi? On ne sait pas très bien ce qui va se passer ensuite.

Idéalement, je suppose qu'il existe un fichier exécutable par exemple. converter.java, où vous devez spécifier une entrée et un répertoire de sortie. Je ne peux pas voir cela expliqué nulle part.

Répondre

7

Je pense que cette question devrait être "Comment transpiler un projet Java vers TypeScript avec JSweet".

DISCLAMER: L'objectif principal de JSweet n'est pas de transformer les programmes Java existants en TypeScript. Cependant, étant donné que JSweet produit du code TypeScript intermédiaire, il pourrait être utilisé comme aide pour migrer des programmes Java vers TypeScript. Bien sûr, cette migration ne fonctionnera pleinement que si les bibliothèques Java sont également disponibles en JavaScript, sinon vous devrez fournir une implémentation ou changer manuellement les bibliothèques utilisées en JavaScript.

Vous pouvez en effet démarrer depuis le projet QuickStart sur Github. Lorsque vous exécutez le mvn generate-sources, ce qui se passe est que les sources Java dans src/main/java sont transmises à TypeScript. Le processus de génération JSweet est configuré dans le fichier pom.xml avec le plugin Maven JSweet. Ici vous pouvez dire à JSweet ce qu'il faut générer et où. Voir la liste complète des options du plugin here. Ainsi, selon le fichier pom.xml, JSweet est configuré comme:

 <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> 
      [...] 

En raison de l'option tsOut, vous trouverez le code dactylographiée généré dans le répertoire target/ts. Donc, pour traduire un programme Java complet à partir de là, vous devez copier-coller votre code source Java dans le src/main/java. Ensuite, exécutez à nouveau mvn generate-sources.

Veuillez noter que pour que cette commande aboutisse, vos fichiers Java doivent d'abord être compilés à partir d'un point de vue Java. Cela signifie que si vos fichiers source Java utilisent d'autres bibliothèques Java, celles-ci doivent être disponibles dans votre chemin de classe. Ainsi, comme tout projet Java sous Maven, vous devez configurer une section <dependencies> dans votre pom.xml. L'utilisation de bibliothèques Java externes peut poser problème, car ces bibliothèques Java ne sont probablement pas disponibles dans JSweet/TypeScript. Ainsi, il est probable que vous obtiendrez les fichiers TypeScript générés dans votre répertoire target/ts, mais que la transpilation signalera de nombreuses erreurs en raison de l'utilisation d'API non existantes dans TypeScript.

À partir de là, vous pouvez:

  • Prenez le code dactylographiée comme il est et terminer la transformation manuellement (ce qui signifie que vous devez factoriser votre code pour utiliser les API tapuscrit valides plutôt que des Java). C'est probablement votre option préférée si vous voulez passer à TypeScript et jeter la base de code source Java.
  • Fournissez une implémentation JSweet des API Java que vous utilisez, de la même manière que le projet J4TS. Ce video montre une preuve de concept sur la façon d'implémenter l'API de l'applet dans JSweet. Cela peut être une bonne option si vous voulez continuer à travailler en Java avec JSweet et utiliser l'outil Java pour migrer progressivement et en toute sécurité sur le Web.