在线观看不卡亚洲电影_亚洲妓女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ù)的代碼