使用 Ant

    • kotlin2js: 针对 JavaScript 的 Kotlin 编译器;
    • withKotlin: 使用标准 javac Ant 任务时编译 Kotlin 文件的任务。
      这仨任务在 kotlin-ant.jar 库中定义,该库位于 Kotlin 编译器lib 文件夹中需要 Ant 1.8.2+ 版本。

    针对 JVM 只用 Kotlin 源代码

    当项目由 Kotlin 专用源代码组成时,编译项目的最简单方法是使用 kotlinc 任务:

    其中 ${kotlin.lib} 指向解压缩 Kotlin 独立编译器所在文件夹。

    1. <typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>
    2. <target name="build">
    3. <kotlinc output="hello.jar">
    4. <src path="root1"/>
    5. <src path="root2"/>
    6. </kotlinc>
    7. </target>
    8. </project>

    针对 JVM 使用 Kotlin 和 Java 源代码

    如果项目由 Kotlin 和 Java 源代码组成,虽然可以使用 kotlinc 来避免任务参数的重复,但是建议使用 withKotlin 任务:

    还可以将正在编译的模块的名称指定为 moduleName 属性:

      针对 JavaScript 用 Prefix、 PostFix 以及 sourcemap 选项

      1. <project name="Ant Task Test" default="build">
      2. <taskdef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>
      3. <target name="build">
      4. <kotlin2js src="root1" output="out.js" outputPrefix="prefix" outputPostfix="postfix" sourcemap="true"/>
      5. </project>

      参考

      元素和属性的完整列表如下:

      如需传递原始编译器参数,可以使用带 valueline 属性的 <compilerarg> 元素。可以放在 <kotlinc><kotlin2js><withKotlin> 任务元素内,如下所示:

      1. <kotlinc src="${test.data}/hello.kt" output="${temp}/hello.jar">
      2. <compilerarg value="-Xno-inline"/>
      3. <compilerarg line="-Xno-call-assertions -Xno-param-assertions"/>
      4. <compilerarg value="-Xno-optimize"/>
      5. </kotlinc>