如何在eclipse maven web项目中编译kotlin

时间:2016-02-27 08:43:01

标签: eclipse spring maven tomcat kotlin

我用过 日食火星
jdk8
tomcat8
kotlin 1.0

我正在春季项目中进行java-> kotlin
我在pom.xml中添加此代码

<properties>
    <kotlin.version>1.0.0</kotlin.version>
</properties>
...
<dependencies>
<dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
</dependencies>
....
<build>
    <plugins>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.9</version>
            <configuration>
                <additionalProjectnatures>
                    <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                </additionalProjectnatures>
                <additionalBuildcommands>
                    <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                </additionalBuildcommands>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <compilerArgument>-Xlint:all</compilerArgument>
                <showWarnings>true</showWarnings>
                <showDeprecation>true</showDeprecation>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <configuration>
                <mainClass>org.test.int1.Main</mainClass>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <version>${kotlin.version}</version>
            <executions>
                <execution>
                    <id>compile</id>
                    <phase>process-sources</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <sourceDirs>
                            <source>src/main/kotlin</source>
                        </sourceDirs>

                    </configuration>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <phase>process-test-sources</phase>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                    <configuration>
                        <sourceDirs>
                            <source>src/test/kotlin</source>
                        </sourceDirs>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>


但是当tomcat启动或创建到war文件时不要压缩.kt文件

.kt和.java文件混合在同一个包中 顺便说一句,当你启动tomcat或创建war文件时,会编译.java文件 但.kt文件不是

因此在WEB-INF / classes目录中,.class(这是.java的结果) 和.kt文件(未编译)存在

这个图片是WEB-INF / classes目录
classes folder

如何编译.kt文件?

1 个答案:

答案 0 :(得分:0)

我没有在POM中看到任何将Kotlin文件和依赖项添加到WAR中的内容。

您还可以确保tomcat可以访问Kotlin运行时,方法是将其包含在WAR中,或者将其添加到tomcats类路径中。