Добро пожаловать в Котлин!
Это статически типизированный язык программирования с открытым исходным кодом, поддерживаемый и разрабатываемый JetBrains и участниками открытого исходного кода.
Несколько полезных ссылок:
Поддержка мультиплатформенного программирования — одно из ключевых преимуществ Kotlin. Это сокращает время, затрачиваемое на написание и поддержку одного и того же кода для разных платформ, сохраняя при этом гибкость и преимущества собственного программирования.
В этом репозитории используется функция цепочек инструментов Gradle для выбора и автоматического предоставления необходимых JDK из проекта AdoptOpenJdk.
В качестве альтернативы по-прежнему можно предоставлять только необходимые JDK через переменные среды (поддерживаемые имена переменных см. в gradle.properties). Чтобы гарантировать, что Gradle использует только JDK из переменных среды, отключите автоматическое обнаружение цепочки инструментов Gradle, передав параметр -Porg.gradle.java.installations.auto-detect=false
(или поместив его в $GRADLE_USER_HOME/gradle.properties
).
В Windows вам может потребоваться добавить настройку длинных путей в репо:
git config core.longpaths true
Проект построен с помощью Gradle. Запустите Gradle, чтобы собрать проект и запустить тесты, используя следующую команду в Unix/macOS:
./gradlew <tasks-and-options>
или следующую команду в Windows:
gradlew <tasks-and-options>
В первой конфигурации проекта Gradle загрузит и настроит зависимости от
intellij-core
является частью компилятора командной строки и содержит только необходимые API.idea-full
— это полноценная версия IntelliJ IDEA Community Edition, которая будет использоваться в модуле плагина.Эти зависимости довольно велики, поэтому в зависимости от качества вашего интернет-соединения вы можете столкнуться с таймаутами при их получении. В этом случае вы можете увеличить таймаут, указав следующие параметры командной строки при первом запуске:
./gradlew -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000
clean
— чистые результаты сборкиdist
— собирает дистрибутив компилятора в папку dist/kotlinc/
install
— собрать и установить все общедоступные артефакты в локальный репозиторий maven.coreLibsTest
— сборка и запуск тестов stdlib, Reflection и Kotlin-test.gradlePluginTest
— создание и запуск тестов плагина gradlecompilerTest
— собрать и запустить все тесты компилятора. Чтобы воспроизвести сборку TeamCity, используйте флаг -Pteamcity=true
. Локальные сборки не запускают proguard и по умолчанию отключают сжатие jar.
ДОПОЛНИТЕЛЬНО: некоторые артефакты, в основном плагины Maven, создаются отдельно с помощью Maven. Подробности см. в библиотеке/ReadMe.md.
Чтобы собрать Kotlin/Native, см. kotlin-native/README.md.
Рекомендуется использовать последнюю выпущенную версию Intellij IDEA (Community или Ultimate Edition). Вы можете скачать IntelliJ IDEA здесь.
После клонирования проекта импортируйте его в IntelliJ, выбрав каталог проекта в диалоговом окне «Открыть проект».
Для удобной работы с тестами компилятора рекомендуется использовать Kotlin Compiler Test Helper.
У нас в репозитории включена функция проверки зависимостей для всех сборок Gradle. Gradle проверит хэши (md5 и sha256) используемых зависимостей и завершится сбоем сборки с ошибками Dependency verification failed
, если локальные артефакты отсутствуют или имеют разные хеши, перечисленные в файлеverification-metadata.xml.
Ожидается, что verification-metadata.xml
следует обновлять только с помощью коммитов, изменяющих сборку. Вот несколько советов, как выполнить такие обновления:
components
из verification-metadata.xml
, чтобы избежать накопления старых неиспользуемых зависимостей. Вы можете использовать следующую команду: # macOS
sed -i ' ' -e ' /<components>/,/</components>/d ' gradle/verification-metadata.xml
# Linux & Git for Windows
sed -i -e ' /<components>/,/</components>/d ' gradle/verification-metadata.xml
--write-verification-metadata
(проверьте, что обновление соответствует вашим изменениям). ./gradlew --write-verification-metadata sha256,md5 -Pkotlin.native.enabled=true resolveDependencies
resolveDependencies
разрешает зависимости для всех платформ, включая зависимости, загруженные плагинами.
Вы также можете использовать скрипт ./scripts/update-verification-metadata.sh
, который включает оба этих шага.
Иметь в виду:
darwin
, mac
, osx
, linux
, windows
), не забудьте добавить их в конфигурацию implicitDependencies
или при необходимости обновить задачу resolveDependencies
. resolveDependencies
должен разрешать все зависимости, включая зависимости для разных платформ.local.properties
в папке проекта Kotlin, убедитесь, что он не содержит kotlin.native.enabled=false
. В противном случае в метаданные проверки не могут быть добавлены только собственные зависимости. Это связано с тем, что local.properties
имеет более высокий приоритет, чем -Pkotlin.native.enabled=true
указанный в команде Gradle. Мы часто публикуем версии -dev
.
Для версий -dev
вы можете использовать список доступных версий и включить этот репозиторий maven:
maven( " https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap " )
Kotlin распространяется на условиях лицензии Apache (версия 2.0). Подробности смотрите в папке с лицензией.
Обязательно ознакомьтесь с рекомендациями Kotlin по участию, чтобы узнать, как помочь проекту.