在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ Kotlin使用Ant
Kotlin內(nèi)聯(lián)函數(shù)
Kotlin開(kāi)發(fā)環(huán)境設(shè)置(Eclipse)
Kotlin調(diào)用Java代碼
Kotlin使用Ant
Kotlin編譯器插件
Kotlin相等性
Kotlin JavaScript模塊
編寫(xiě)Kotlin代碼文檔
Kotlin返回和跳轉(zhuǎn)
Kotlin異常處理
Kotlin可見(jiàn)性修飾符
Kotlin委托
Kotlin委托屬性
Kotlin編碼約定/編碼風(fēng)格
Kotlin基礎(chǔ)語(yǔ)法
使用Kotlin進(jìn)行服務(wù)器端開(kāi)發(fā)
Kotlin接口
Kotlin反射
Kotlin類型別名
Kotlin枚舉類
Kotlin當(dāng)前版本是多少?
Kotlin注解處理工具
Kotlin類型的檢查與轉(zhuǎn)換
Kotlin屬性和字段
Kotlin類型安全的構(gòu)建器
Kotlin相比Java語(yǔ)言有哪些優(yōu)點(diǎn)?
Kotlin JavaScript反射
Kotlin 是什么?
Kotlin泛型
Kotlin慣用語(yǔ)法
Kotlin與OSGi
Kotlin數(shù)據(jù)類型
Kotlin是面向?qū)ο筮€是函數(shù)式語(yǔ)言?
Kotlin動(dòng)態(tài)類型
Kotlin協(xié)程
Kotlin操作符符重載
Kotlin使用Gradle
Kotlin密封類
Kotlin兼容性
Kotlin集合
Kotlin調(diào)用JavaScript
Kotlin null值安全
Kotlin函數(shù)
Kotlin開(kāi)發(fā)環(huán)境設(shè)置(IntelliJ IDEA)
Kotlin嵌套類
Kotlin控制流程
Kotlin和Java語(yǔ)言比較
Kotlin 與 Java 語(yǔ)言兼容嗎?
Kotlin教程
Kotlin類和繼承
Kotlin對(duì)象表達(dá)式和對(duì)象聲明
JavaScript中調(diào)用Kotlin
Kotlin區(qū)間/范圍
Kotlin數(shù)據(jù)類
Kotlin lambda表達(dá)式
Kotlin是免費(fèi)的嗎?
Kotlin包
使用Kotlin進(jìn)行Android開(kāi)發(fā)
在Java中調(diào)用Kotlin代碼
Kotlin this表達(dá)式
使用Kotlin進(jìn)行JavaScript開(kāi)發(fā)
Kotlin擴(kuò)展
Kotlin解構(gòu)聲明
Kotlin注解
Kotlin使用Maven

Kotlin使用Ant

獲取 Ant 任務(wù)

Kotlin 為 Ant 提供了三個(gè)任務(wù):

  • kotlinc: 針對(duì) JVM 的 Kotlin 編譯器
  • kotlin2js: 針對(duì) JavaScript 的 Kotlin 編譯器
  • withKotlin: 使用標(biāo)準(zhǔn) javac Ant 任務(wù)時(shí)編譯 Kotlin 文件的任務(wù)

這仨任務(wù)在 kotlin-ant.jar 庫(kù)中定義,該庫(kù)位于 Kotlin 編譯器的 lib 文件夾中

針對(duì) JVM 只用 Kotlin 源代碼

當(dāng)項(xiàng)目由 Kotlin 專用源代碼組成時(shí),編譯項(xiàng)目的最簡(jiǎn)單方法是使用 kotlinc 任務(wù)

<project name="Ant Task Test" default="build">
    <typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>

    <target name="build">
        <kotlinc src="hello.kt" output="hello.jar"/>
    </target>
</project>

其中 ${kotlin.lib} 指向解壓縮 Kotlin 獨(dú)立編譯器所在文件夾。

針對(duì) JVM 只用 Kotlin 源代碼且多根

如果項(xiàng)目由多個(gè)源代碼根組成,那么使用 src 作為元素來(lái)定義路徑

<project name="Ant Task Test" default="build">
    <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>

針對(duì) JVM 使用 Kotlin 和 Java 源代碼

如果項(xiàng)目由 Kotlin 和 Java 源代碼組成,雖然可以使用 kotlinc 來(lái)避免任務(wù)參數(shù)的重復(fù),但是
建議使用 withKotlin 任務(wù)

<project name="Ant Task Test" default="build">
    <typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>

    <target name="build">
        <delete dir="classes" failonerror="false"/>
        <mkdir dir="classes"/>
        <javac destdir="classes" includeAntRuntime="false" srcdir="src">
            <withKotlin/>
        </javac>
        <jar destfile="hello.jar">
            <fileset dir="classes"/>
        </jar>
    </target>
</project>

要為 <withKotlin> 指定額外的命令行參數(shù),可以使用嵌套的 <compilerArg> 參數(shù)。
當(dāng)運(yùn)行 kotlinc -help 時(shí),會(huì)顯示可以使用的參數(shù)的完整列表。
還可以將正在編譯的模塊的名稱指定為 moduleName 屬性:

<withKotlin moduleName="myModule">
    <compilerarg value="-no-stdlib"/>
</withKotlin>

針對(duì) JavaScript 用單個(gè)源文件夾

<project name="Ant Task Test" default="build">
    <typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>

    <target name="build">
        <kotlin2js src="root1" output="out.js"/>
    </target>
</project>

針對(duì) JavaScript 用 Prefix、 PostFix 以及 sourcemap 選項(xiàng)

<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"/>
    </target>
</project>

針對(duì) JavaScript 用單個(gè)源文件夾以及 metaInfo 選項(xiàng)

如果要將翻譯結(jié)果作為 Kotlin/JavaScript 庫(kù)分發(fā),那么 metaInfo 選項(xiàng)會(huì)很有用。
如果 metaInfo 設(shè)置為 true,則在編譯期間將創(chuàng)建具有
二進(jìn)制元數(shù)據(jù)的額外的 JS 文件。該文件應(yīng)該與翻譯
結(jié)果一起分發(fā)。

<project name="Ant Task Test" default="build">
    <typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>

    <target name="build">
        <!-- 會(huì)創(chuàng)建 out.meta.js,其中包含二進(jìn)制元數(shù)據(jù) -->
        <kotlin2js src="root1" output="out.js" metaInfo="true"/>
    </target>
</project>

參考

元素和屬性的完整列表如下

kotlinc 和 kotlin2js 的公共屬性

名稱 描述 必需 默認(rèn)值
src 要編譯的 Kotlin 源文件或目錄 是
nowarn 禁止所有編譯警告 否 false
noStdlib 不要將 Kotlin 標(biāo)準(zhǔn)庫(kù)包含進(jìn) classpath 否 false
failOnError 在編譯期間檢測(cè)到錯(cuò)誤時(shí),會(huì)導(dǎo)致構(gòu)建失敗 否 true

kotlinc 屬性

名稱 描述 必需 默認(rèn)值
output 目標(biāo)目錄或 .jar 文件名 是
classpath 編譯類路徑 否
classpathref 編譯類路徑引用 否
includeRuntime Kotlin 運(yùn)行時(shí)庫(kù)是否包含在 jar 中,如果 output 是 .jar 文件的話 否 true
moduleName 編譯的模塊的名稱 否 目標(biāo)(如果指定的話)或項(xiàng)目的名稱

kotlin2js 屬性

名稱 描述 必需
output 目標(biāo)文件 是
libraries Kotlin 庫(kù)的路徑 否
outputPrefix 生成的 JavaScript 文件所用前綴 否
outputSuffix 生成的 JavaScript 文件所用后綴 否
sourcemap 是否要生成 sourcemap 文件 否
metaInfo 是否要生成具有二進(jìn)制描述符的元數(shù)據(jù)文件 否
main 編譯器是否生成調(diào)用 main 函數(shù)的代碼 否