Eclipse - 如何将 Kotlin 添加到 Tomcat 项目 - 编译 Kotlin 和 Java 文件

标签 eclipse tomcat kotlin eclipse-wtp

我需要帮助将 Kotlin 编译添加到现有的 eclipse java tomcat 项目。

郑重声明,我使用的是 Eclipse Oxygen 4.7,并且已经安装了 Kotlin 插件。我已经成功创建并运行了基于 gradle 的 spring boot Kotlin rest api 演示,并且可以编译和运行“Kotlin Only Projects”并使用我的其他 java 库 - 太棒了。

但是现在我有了 Kotlin,我想在我的其他“遗留”Tomcat 8 项目中使用它,这些项目是 Java J2EE - 动态 WTP ...我想用 Kotlin 编写的新 servlet。

我希望能够在我以前的任何包中的 java src 文件夹中添加一个 Kotlin 类,这样当我构建一个 war 时,所有这些都合乎逻辑地放在一起。

IDE 似乎没问题 - 我在包中创建了一个 Kotlin 类(在 tomcat 项目 java src 包文件夹中)并且它在解析、导入或依赖方面没有问题...

我在想哇!好吧,现在在 WTP 中重启 Tomcat 服务器,我将能够执行我的 Kotlin Servlet。否 - 404 404 404。

我检查了 WEB-INF/classes 构建文件夹以及所有 Java 类文件……猜猜我看到了什么?!一个名为 KotlinServlet.kt 的文件(这是我的测试 servlet 的名称,源版本不是编译类版本)

因此出于某种原因,build/package/deployment 没有费心去编译 *.kt 文件,只是将其复制过来(也许这是一般 WTP 部署的默认设置)。

我想知道这是否可以通过“添加 Kotlin 自然”来解决,奇怪的是我没有一个 eclipse Kotlin 菜单功能可供我使用。如果我右键单击我的项目,我看不到 Kotlin 菜单选项。

Eclipse 声明插件已安装。

所以我的问题是:

给定现有的常规 WTP Tomcat servlet 项目,我们如何才能让它识别并编译 *.kt 文件?我如何以及为什么没有 Kotlin 菜单功能? (我下载并测试了 Oxygen Java 和 J2EE 版本 - 安装了 Kotlin 插件 - 那里也没有菜单来添加 Kotlin Nature。然后我还尝试了插件的夜间构建。没有出现菜单。显然 puglin 已安装编译编辑器中的其他 Kotlin 项目和作品。

根据我的研究 - “添加 Kotlin 自然”应该可以解决联合 Java/Kotlin 编译的问题,但该菜单功能在任何地方都不可用???

如果这是一个“Kotlin 项目”,eclipse 可以很好地编译 Kotlin。

有什么想法吗?看起来像是 IntelliJ 的阴谋。

谢谢,

最佳答案

需要添加相应的依赖。管理项目依赖关系的最简单方法是使用构建工具(ma​​vengradleAnt+Ivy...)。在 Maven 示例中,您需要:

<properties>
    <!-- your properties... and define version fir kotlin -->
    <kotlin.version>1.1.4</kotlin.version>
</properties>

<dependencies>
    <!-- your project dependencies... and add one for kotlin -->

    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib-jre8</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-test</artifactId>
        <version>${kotlin.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
    <!-- your project plugins... and add one for kotlin -->
        <plugin>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <version>${kotlin.version}</version>
            <executions>
                <execution>
                    <id>compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <jvmTarget>1.8</jvmTarget>
            </configuration>
        </plugin>
    </plugins>
</build>

如果你使用IDE需要安装kotlin语言支持插件才能kotlin编译或者测试运行对用户更友好。

关于Eclipse - 如何将 Kotlin 添加到 Tomcat 项目 - 编译 Kotlin 和 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046169/

相关文章:

kotlin - Kotlin是否有像Python这样的关键字 `None`?

android - 如何在 Kotlin anko 中使用 TextInputLayout & TextInputEditText

java - Eclipse 模板提案(又名自动完成)不起作用

java - 如何使用PMD忽略短变量规则中的 "id"

eclipse - 无法使用 Gradle 分发获取类型 'EclipseProject' 的模型

tomcat - 如何使用 xsbt-web-plugin 为每个 Spray 应用程序启动具有不同端口的多个 Tomcat 实例?

web-services - 将单体服务器应用程序移植到 Web 服务陷阱

Java程序不终止?

eclipse - 在Eclipse中给Tomcat服务器添加资源时,什么可以是资源?

exception - kotlin协程,launch如何处理异常