【问题标题】:Installed jSweet. Now what?安装了 jSweet。怎么办?
【发布时间】:2017-01-08 06:58:47
【问题描述】:

我有一个 java 项目,我想将它转换成 Typescript(大约 150 个文件)。

根据http://www.jsweet.org/getting-started/

...我查看了 jsweet Github 项目。

...我运行了 mvn generated-src

...我加载了 index.html,它告诉我“它有效!”

现在呢?目前还不清楚接下来会发生什么。

理想情况下,我会假设有一些可运行的文件,例如。 converter.java,您可以在其中指定输入和输出目录。我无法在任何地方看到这一点。

【问题讨论】:

    标签: typescript jsweet


    【解决方案1】:

    我觉得这个问题应该是“How to transpile a Java project to TypeScript with JSweet”

    DISCLAMER:JSweet 的主要目的不是将现有的 Java 程序转换为 TypeScript。但是,由于 JSweet 生成中间 TypeScript 代码,它可以用作将 Java 程序迁移到 TypeScript 的助手。当然,只有当 Java 库也可用于 JavaScript 时,此迁移才能完全工作,否则,您必须提供实现或手动将使用的库更改为现有的 JavaScript 库。

    您确实可以从 Github 上的 QuickStart 项目开始。当您运行mvn generate-sources 时,会发生src/main/java 中的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 目录中找到生成的TypeScript 代码。

    因此,为了从那里翻译完整的 Java 程序,您需要在 src/main/java 中复制粘贴您的 Java 源代码。然后,再次运行mvn generate-sources

    请注意,要成功执行此命令,您的 Java 文件首先需要从 Java 的角度进行编译。这意味着如果您的 Java 源文件使用其他 Java 库,这些库必须在您的类路径中可用。因此,与 Maven 下的任何 Java 项目一样,您需要在您的 pom.xml 中设置一个 &lt;dependencies&gt; 部分。

    使用外部 Java 库可能是个问题,因为这些 Java 库可能在 JSweet/TypeScript 中不可用。因此,您很可能会在 target/ts 目录中生成 TypeScript 文件,但由于在 TypeScript 中使用了不存在的 API,因此转译会报告许多错误。

    从那里,您可以:

    • 按原样获取 TypeScript 代码并手动完成转换(这意味着您需要重构代码以使用有效的 TypeScript API 而不是 Java 的)。如果您想切换到 TypeScript 并丢弃 Java 源代码库,这可能是您的首选。
    • 提供您正在使用的 Java API 的 JSweet 实现,方法与 J4TS 项目类似。这个video 展示了如何在 JSweet 中实现小程序 API 的概念验证。如果您想继续使用 JSweet 使用 Java 并使用 Java 工具安全地逐步迁移到 Web,这可能是一个不错的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      相关资源
      最近更新 更多