我非常喜欢编写一次框架,然后可以将其编译为jvm字节码以及用于web的javascript。
目前,使用kotlin编译器是否可以实现这一点?
我非常喜欢编写一次框架,然后可以将其编译为jvm字节码以及用于web的javascript。
目前,使用kotlin编译器是否可以实现这一点?
Create a class kotlin named Person in path src/main/kotlin/com.example.training/
data class Person (
val id, Int,
val firstname: String)
Edit pom.xml
a) Add dependency "kotlin-stdlib.js"
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-js</artifactId>
<version>${kotlin.version}</version>
</dependency>
b) Add goal "js" in plugin "kotlin-maven-plugin"
c) (Optional for interoperability Kotlin/JS) Add plugin for unpacking js files needed which are in lib "kotlin-stdlib-js"
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>compile</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-js</artifactId>
<version>${kotlin.version}</version>
<outputDirectory>${project.build.directory}/js/lib</outputDirectory>
<includes>*.js</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Run mvn clean compile
Folder classes contains Person.class for java. Folder js contains kotlin2js.js and kotlin2js.meta.js for JS, all js files unpacked are in child folder lib.
有段时间这会导致问题。然而这个想法非常好,所以人们继续询问。
请查看我的项目https://github.com/C06A/KUrlet,我就是这么做的:在根级别模块中包含共享代码,并将它的源目录包含到每个子模块(一个针对JVM,另一个为JS)的sourceSets属性中。