Spec-Zone.ru › Kotlin 1.6

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 runtime в этот jar

Нет

true

moduleName

Имя компилируемого модуля

Нет

Название целевого объекта (если указано) или проекта

Атрибуты kotlin2js

Имя

Описание

Обязательно

output

Целевой файл

Да

libraries

Пути к библиотекам Kotlin

Нет

outputPrefix

Префикс, используемый для сгенерированных JavaScript-файлов

Нет

outputSuffix

Постфикс, используемый для сгенерированных JavaScript-файлов

Нет

sourcemap

Генерировать ли файл sourcemap

Нет

metaInfo

Генерировать ли файл метаданных с бинарными описателями

Нет

main

Вызывать ли функцию 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.

Последнее изменение: 07 апреля 2022
Maven Руководство по миграции стиля кода

© 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