使用 Ant
- kotlin2js: 针对 JavaScript 的 Kotlin 编译器;
- withKotlin: 使用标准 javac Ant 任务时编译 Kotlin 文件的任务。
这仨任务在 kotlin-ant.jar 库中定义,该库位于 Kotlin 编译器的 lib 文件夹中需要 Ant 1.8.2+ 版本。
针对 JVM 只用 Kotlin 源代码
当项目由 Kotlin 专用源代码组成时,编译项目的最简单方法是使用 kotlinc 任务:
其中 ${kotlin.lib} 指向解压缩 Kotlin 独立编译器所在文件夹。
<typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>
<target name="build">
<kotlinc output="hello.jar">
<src path="root1"/>
<src path="root2"/>
</kotlinc>
</target>
</project>
针对 JVM 使用 Kotlin 和 Java 源代码
如果项目由 Kotlin 和 Java 源代码组成,虽然可以使用 kotlinc 来避免任务参数的重复,但是建议使用 withKotlin 任务:
还可以将正在编译的模块的名称指定为 moduleName
属性:
针对 JavaScript 用 Prefix、 PostFix 以及 sourcemap 选项
<project name="Ant Task Test" default="build">
<taskdef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>
<target name="build">
<kotlin2js src="root1" output="out.js" outputPrefix="prefix" outputPostfix="postfix" sourcemap="true"/>
</project>
参考
元素和属性的完整列表如下:
如需传递原始编译器参数,可以使用带 value
或 line
属性的 <compilerarg>
元素。可以放在 <kotlinc>
、 <kotlin2js>
与 <withKotlin>
任务元素内,如下所示:
<kotlinc src="${test.data}/hello.kt" output="${temp}/hello.jar">
<compilerarg value="-Xno-inline"/>
<compilerarg line="-Xno-call-assertions -Xno-param-assertions"/>
<compilerarg value="-Xno-optimize"/>
</kotlinc>