Spec-Zone.ru › Kotlin 1.7

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

Атрибуты kotlin2js

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

Для передачи пользовательских аргументов компилятора в сыром виде можно использовать элементы <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 IDE для разработки на Kotlin

© 2010–2022 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