Spec-Zone.ru › Kotlin 1.9

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 с опциями 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"/>
    </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-библиотека времени выполнения

Нет

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.

Последнее изменение: 11 февраля 2021 г.
Maven Введение

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

Spec-Zone.ru

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