Spec-Zone.ru › Kotlin 1.4

Использование Ant

Получение задач Ant

Kotlin предоставляет три задачи для Ant:

  • kotlinc: Компилятор Kotlin, нацеленный на JVM;
  • kotlin2js: Компилятор Kotlin, нацеленный на JavaScript;
  • withKotlin: Задача для компиляции файлов Kotlin при использовании стандартной задачи Ant javac.

Эти задачи определены в библиотеке kotlin-ant.jar, которая расположена в папке lib для Kotlin Compiler. Требуется версия Ant 1.8.2+.

Назначение JVM с только Kotlin-источником

Когда проект состоит только из исходного кода Kotlin, самый простой способ скомпилировать проект — использовать задачу kotlinc:

<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.

Назначение JVM с только Kotlin-источником и несколькими корнями

Если проект состоит из нескольких корней исходных данных, используйте элементы src для определения путей:

<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>

Назначение JVM с Kotlin и Java исходными данными

Если проект состоит из кода на Kotlin и Java, хотя можно использовать kotlinc, для избежания повторения параметров задач рекомендуется использовать задачу withKotlin:

<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>

Вы также можете указать имя модуля, который компилируется, как атрибут moduleName:

<withKotlin moduleName="myModule"/>

Назначение JavaScript с одной папкой исходных данных

<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>

Назначение JavaScript с префиксом, постфиксом и параметрами 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"/>
    </target>
</project>

Назначение JavaScript с одной папкой исходных данных и параметром metaInfo

Параметр metaInfo полезен, если вы хотите распространить результат трансляции как библиотеку Kotlin/JavaScript. Если metaInfo было установлено в значение true, то во время компиляции будет создан дополнительный JS-файл с бинарными метаданными. Этот файл следует распространять вместе с результатом трансляции:

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

    <target name="build">
        <!-- out.meta.js will be created, which contains binary metadata -->
        <kotlin2js src="root1" output="out.js" metaInfo="true"/>
    </target>
</project>

Ссылки

Полный список элементов и атрибутов приведен ниже:

Атрибуты, общие для kotlinc и kotlin2js

Имя Описание Обязательно Значение по умолчанию
src Файл или директория с исходным кодом Kotlin для компиляции Да
nowarn Подавляет все предупреждения о компиляции Нет false
noStdlib Не включает стандартную библиотеку Kotlin в путь к классам Нет false
failOnError Прерывает сборку, если во время компиляции обнаружены ошибки Нет true

Атрибуты kotlinc

Имя Описание Обязательно Значение по умолчанию
output Директория назначения или имя файла .jar Да
classpath Путь к классам для компиляции Нет
classpathref Ссылка на путь к классам для компиляции Нет
includeRuntime Если output является файлом .jar, включать ли библиотеку выполнения Kotlin в jar Нет true
moduleName Имя компилируемого модуля Нет Имя цели (если указано) или проект

Атрибуты kotlin2js

Имя Описание Обязательно
output Файл назначения Да
libraries Пути к библиотекам Kotlin Нет
outputPrefix Префикс для сгенерированных JavaScript-файлов Нет
outputSuffix Постфикс для сгенерированных JavaScript-файлов Нет
sourcemap Необходимо ли генерировать файл sourcemap Нет
metaInfo Необходимо ли генерировать файл метаданных с бинарными описателями Нет
main Должен ли сгенерированный компилятором код вызывать основную функцию Нет

Передача исходных аргументов компилятора

Чтобы передать пользовательские исходные аргументы компилятора, вы можете использовать элементы <compilerarg>, с атрибутами value или line. Это можно сделать внутри элементов задачи <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>

Полный список аргументов, которые можно использовать, отображается при запуске kotlinc -help.

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/reference/using-ant.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API