Ant
Получение задач Ant
Kotlin предоставляет три задачи для Ant:
kotlinc: Компилятор Kotlin, нацеленный на JVMkotlin2js: Компилятор Kotlin, нацеленный на JavaScriptwithKotlin: Задача компиляции файлов 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
Имя |
Описание |
Обязательно |
Значение по умолчанию |
|---|---|---|---|
|
Файл или каталог с исходными файлами Kotlin для компиляции |
Да |
|
|
Отключает все предупреждения о компиляции |
Нет |
false |
|
Не включает стандартную библиотеку Kotlin в пути к классам |
Нет |
false |
|
Останавливает сборку при обнаружении ошибок во время компиляции |
Нет |
true |
Атрибуты kotlinc
Имя |
Описание |
Обязательно |
Значение по умолчанию |
|---|---|---|---|
|
Директория назначения или имя файла .jar |
Да |
|
|
Путь к классам для компиляции |
Нет |
|
|
Ссылка на путь к классам для компиляции |
Нет |
|
|
Если |
Нет |
true |
|
Имя компилируемого модуля |
Нет |
Название целевого объекта (если указано) или проекта |
Атрибуты kotlin2js
Имя |
Описание |
Обязательно |
|---|---|---|
|
Целевой файл |
Да |
|
Пути к библиотекам Kotlin |
Нет |
|
Префикс, используемый для сгенерированных JavaScript-файлов |
Нет |
|
Постфикс, используемый для сгенерированных JavaScript-файлов |
Нет |
|
Генерировать ли файл sourcemap |
Нет |
|
Генерировать ли файл метаданных с бинарными описателями |
Нет |
|
Вызывать ли функцию 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–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/ant.html