Add kotlin to gradle

Gradle

Для сборки с помощью Gradle необходимо настроить kotlin-gradle плагин, применить его к своему проекту и добавить kotlin-stdlib зависимость. Эти действия могут быть сделаны автоматически с помощью IntelliJ IDEA во вкладке Tools | Kotlin | Configure Kotlin.

Плагин и версии

kotlin-gradle-plugin создает Kotlin ресурсы и модули.

Версия Kotlin обычно указывается в kotlin_version свойстве:

buildscript < ext.kotlin_version = '>' repositories < mavenCentral() >dependencies < classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" >> 

Это не требуется когда версия Kotlin Gradle плагина 1.1.1 и выше с Gradle plugins DSL.

Поддержка JVM

Чтобы настроить JVM необходимо использовать плагин Kotlin:

Начиная с Kotlin 1.1.1 плагин может быть применен автоматически с использованием Gradle plugins DSL:

version должен быть в данном блоке(как на примере), и не может быть использован из других скриптов сборки.

Kotlin ресурсы могут сочетаться с Java ресурсами из одной папки или разных папок. По умолчанию используются разные папки:

project - src - main (root) - kotlin - java 

Соответствующее свойство sourceSets должно быть обновлено, если не использовано значение по умолчанию:

Поддержка JavaScript

Для использования JavaScript должен применяться другой плагин:

Данный плагин работает только для Kotlin файлов, таким образом рекомендуется хранить Kotlin и Java файлы раздельно (Это в случае если данный проект содержит Java файлы). Как и с поддержкой JVM, если не используются значения по умолчанию, необходимо определить папки ресурсов в sourceSets:

В дополнение к выходному файлу JavaScript плагин по умолчанию создает дополнительный JS-файл с двоичными дескрипторами. Эти файлы требуются в случае создании библиотеки, чтобы Kotlin модули могли наследоваться от нее, и должны распространяться вместе с библиотекой.

Процесс контролируется kotlinOptions.metaInfo свойством:

Поддержка Android

Android’s Gradle модель отличается от обычной Gradle модели, поэтому если необходимо собрать Android проект использующий Kotlin, необходимо применить kotlin-android плагин вместо kotlin:

buildscript < ext.kotlin_version = '>' . dependencies < classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" >> apply plugin: 'com.android.application' apply plugin: 'kotlin-android' 

Android Studio

При использовании Android Studio, необходимо добавить следующее под блоком android:

Это позволит Android Studio находить kotlin директорию в папке с ресурсами поэтому когда проект будет загружен в IDE, он будет правильно распознан. Другой способ — это добавить Kotlin классы в Java директорию, расположенную по пути src/main/java .

Настройка зависимостей

В дополнение к зависимостям kotlin-gradle-plugin , показанным выше, вам нужно добавить зависимость от стандартной библиотеки Kotlin:

repositories < mavenCentral() >dependencies

Для поддержки JavaScript используйте compile «org.jetbrains.kotlin:kotlin-stdlib-js» .

Если вы собираетесь включить поддержку JDK 7 или JDK 8, вы можете использовать расширенную версию Kotlin standard library, которая содержит расширенный API, добавленный в новой JDK версии. Вместо kotlin-stdlib , используйте одну из следующих зависимостей:

compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7" compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" 

В Kotlin 1.1.x, используйте kotlin-stdlib-jre7 вместо kotlin-stdlib-jre8 .

Если проект содержит Kotlin reflection или средства тестирования, вам также необходимо добавить соответствующие зависимости:

compile "org.jetbrains.kotlin:kotlin-reflect" testCompile "org.jetbrains.kotlin:kotlin-test" testCompile "org.jetbrains.kotlin:kotlin-test-junit" 

Начиная с Kotlin 1.1.2 зависимости из группы org.jetbrains.kotlin по умолчанию разрешены. Вы можете указать версию вручную, используя полную зависимость, например compile «org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version» .

Аннотации

Пошаговая компиляция

Kotlin поддерживает пошаговую компиляцию в Gradle. Пошаговая компиляция отслеживает изменения исходных файлов между сборками, поэтому будут скомпилированы только файлы, затронутые этими изменениями.

Начиная с Kotlin 1.1.1 пошаговая компиляция доступна по умолчанию.

Существует несколько способов переопределить настройку по умолчанию:

  1. Добавить kotlin.incremental=true или kotlin.incremental=false либо в gradle.properties , либо в local.properties файл;
  2. Добавить -Pkotlin.incremental=true или -Pkotlin.incremental=false как параметр командной строки. Обратите внимание, что в этом случае параметр должен быть добавлен к каждой последующей сборке, а любая сборка с отключенной пошаговой компиляцией делает недействительными пошаговые кеши.

Когда пошаговая компиляция включена, в журнале сборки должно появиться следующее сообщение:

Using kotlin incremental compilation 

Обратите внимание, что первая сборка не будет пошаговой.

Поддержка Coroutines(сопрограммы)

Coroutines добавлены как экспериментальная функция в Kotlin 1.2, поэтому компилятор Kotlin сообщает об использовании сопрограмм в вашем проекте. Чтобы отключить предупреждение, добавьте следующий блок в свой файл build.gradle :

Названия модулей

Модули Kotlin, создаваемые сборкой, называются соответственно свойству «archivesBaseName» в проекте. Если проект имеет широкое имя, например lib или jvm , что является общим для подпроектов, выходные файлы Kotlin, относящиеся к модулю ( * .kotlin_module ), могут столкнуться с модулями из сторонних модулей с тем же именем, это вызывает проблемы, когда проект упаковывается в один архив (например, APK).

Чтобы этого избежать, рассмотрите возможность установки уникального archivesBaseName вручную:

archivesBaseName = 'myExampleProject_lib' 

Поддержка кеша Gradle Build Cache (начиная с версии 1.2.20)

Kotlin плагин поддерживает Gradle Build Cache (Требуется версия 4.3 и выше; кеширование отключено в более низких версиях).

Задачи обработки аннотаций Kapt не кэшируются по умолчанию, поскольку обработчики аннотаций запускают произвольный код, который необязательно преобразовывает входящие задачи в выходящие и может обращаться к файлам, не отслеживаемых Gradle, и изменять их. Чтобы включить кэширование для kapt в любом случае, добавьте следующие строки в сценарий сборки:

Чтобы отключить кеширование для всех задач Kotlin, установите для параметра системного свойства kotlin.caching.enabled значение false (запустите сборку с аргументом -Dkotlin.caching.enabled=false ).

Опции компилятора

Kotlin` pattern. The names of the tasks in Android Projects contain the [build variant](https://developer.android.com/studio/build/build-variants.html) names and follow the pattern `compile Kotlin`, for example, `compileDebugKotlin`, `compileReleaseUnitTestKotlin`. When targeting JavaScript, the tasks are called `compileKotlin2Js` and `compileTestKotlin2Js` respectively, and `compile Kotlin2Js` for custom source sets. To configure a single task, use its name. Examples: «` groovy compileKotlin < kotlinOptions.suppressWarnings = true >compileKotlin < kotlinOptions < suppressWarnings = true >> «` It is also possible to configure all Kotlin compilation tasks in the project: «` groovy tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all < kotlinOptions < // . >> «` A complete list of options for the Gradle tasks follows: —>

Чтобы указать дополнительные параметры компиляции, используйте свойство kotlinOptions .

При поддержке JVM опции называются compileKotlin для релизного кода и compileTestKotlin для тестового кода. Задачи для настраиваемых исходных ресурсов вызываются по шаблону compile Kotlin .

Имена задач в проектах Android содержат build variant и следуют шаблону compile Kotlin , например, compileDebugKotlin , compileReleaseUnitTestKotlin .

При поддержке JavaScript задачи называются compileKotlin2Js и compileTestKotlin2Js соответственно, и compile Kotlin2Js для настраиваемых ресурсов.

Чтобы настроить задачу, используйте ее имя. Примеры:

compileKotlin < kotlinOptions.suppressWarnings = true >compileKotlin < kotlinOptions < suppressWarnings = true >> 

Также возможно сконфигурировать все задачи компиляции Kotlin:

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all < kotlinOptions < // . >> 

Ниже приведен полный список параметров для задач Gradle:

Атрибуты, общие для JVM, JS и JS DCE

Имя Описание Возможные значения Значение по умолчанию
allWarningsAsErrors Сообщить об ошибке если есть какие-либо предупреждения (warnings) false
suppressWarnings Не создавать предупреждения (warnings) false
verbose Включить подробный вывод журнала false
freeCompilerArgs Список дополнительных аргументов компилятора []

Атрибуты, общие для JVM и JS

Имя Описание Возможные значения Значение по умолчанию
apiVersion Разрешить использование объявлений (declarations) только из указанных версий зависимых библиотек «1.0», «1.1», «1.2», «1.3 (EXPERIMENTAL)»
languageVersion Обеспечить совместимость источника с указанной языковой версией «1.0», «1.1», «1.2», «1.3 (EXPERIMENTAL)»

Атрибуты, специфичные для JVM

Имя Описание Возможные значения Значение по умолчанию
javaParameters Генерировать метаданные для reflection Java 1.8 по параметрам метода false
jdkHome Путь к домашнему каталогу JDK для включения в путь классов, если отличается от стандартного JAVA_HOME
jvmTarget Целевая версия сгенерированного байт-кода JVM (1.6 или 1.8), по умолчанию — 1.6 «1.6», «1.8» «1.6»
noJdk Не включать Java в classpath false
noReflect Не включайте реализацию Kotlin reflection в classpath true
noStdlib Не включать Kotlin runtime в classpath true

Атрибуты, специфичные для JS

Имя Описание Возможные значения Значение по умолчанию
friendModulesDisabled Отключить экспорт внутренних описаний (declaration) false
main Должна ли быть вызвана основная функция «call», «noCall» «call»
metaInfo Создание файлов .meta.js и .kjsm с метаданными. Использование их для создания библиотеки true
moduleKind Тип модуля, сгенерированного компилятором «plain», «amd», «commonjs», «umd» «plain»
noStdlib Не использовать Kotlin stdlib true
outputFile Выходной путь файла
sourceMap Создание источника (source map) false
sourceMapEmbedSources Вставлять исходные файлы (source map) в источник «never», «always», «inlining»
sourceMapPrefix Префикс для путей в источнике (source map)
target Создание JS-файлов для конкретной версии ECMA «v5» «v5»
typedArrays Перевести примитивные массивы на массивы в JS true

Создание документации

Чтобы создать документацию для проектов Kotlin, используйте Dokka; обратитесь к Dokka README для инструкций по настройке. Dokka поддерживает проекты на смешанном языке и может генерировать выходные данные в нескольких форматов, включая стандартный JavaDoc.

OSGi

Для поддержки OSGi см. Страницу Kotlin OSGi.

Примеры

В следующих примерах показаны различные возможности настройки плагина Gradle:

Источник

Get started with Gradle and Kotlin/JVM

This tutorial demonstrates how to use IntelliJ IDEA and Gradle for creating a console application.

To get started, first download and install the latest version of IntelliJ IDEA.

Create a project

Create a console application

  1. In IntelliJ IDEA, select File | New | Project.
  2. In the panel on the left, select New Project.
  3. Name the new project and change its location, if necessary. Select the Create Git repository checkbox to place the new project under version control. You will be able to do it later at any time.
  4. From the Language list, select Kotlin.
  5. Select the Gradle build system.
  6. From the JDK list, select the JDK that you want to use in your project.
    • If the JDK is installed on your computer, but not defined in the IDE, select Add JDK and specify the path to the JDK home directory.
    • If you don’t have the necessary JDK on your computer, select Download JDK.
  7. From the Gradle DSL list, select Kotlin.
  8. Select the Add sample code checkbox to create a file with a sample «Hello World!» application.
  9. Click Create.

You have successfully created a project with Gradle.

Explore the build script

Open the build.gradle.kts file. This is the Gradle Kotlin build script, which contains Kotlin-related artifacts and other parts required for the application:

  • 1️⃣ Application plugin to add support for building CLI application in Java.
  • 2️⃣ Lean more about sources of dependencies.
  • 3️⃣ The Maven Central Repository. It can also be Google’s Maven repository or your company’s private repository.
  • 4️⃣ Learn more about declaring dependencies.
  • 5️⃣ Learn more about tasks.
  • 6️⃣ JUnitPlatform for tests.
  • 7️⃣ Learn more about setting up a Java toolchain.

As you can see, there are a few Kotlin-specific artifacts added to the Gradle build file:

  1. In the plugins block, there is the kotlin(«jvm») artifact – the plugin defines the version of Kotlin to be used in the project.
  2. In the dependencies section, there is testImplementation(kotlin(«test»)) . Learn more about setting dependencies on test libraries.
  3. After the dependencies section, there is the KotlinCompile task configuration block. This is where you can add extra arguments to the compiler to enable or disable various language features.

Run the application

Open the Main.kt file in src/main/kotlin .
The src directory contains Kotlin source files and resources. The Main.kt file contains sample code that will print Hello World! .

Main.kt with main fun

The easiest way to run the application is to click the green Run icon in the gutter and select Run ‘MainKt’.

Running a console app

You can see the result in the Run tool window.

Kotlin run output

Congratulations! You have just run your first Kotlin application.

What’s next?

Источник

Читайте также:  Time string to calendar java
Оцените статью