Repository navigation
Building and Running ru
English · Русский
-
JDK 21 — все модули задают
jvmToolchain(21); плагинfoojay-resolverсам подтянет toolchain, если его нет. -
Android SDK — нужен любой клиентской сборке, не только Android:
:androidAppвсегда в графе настроек, и AGP резолвит SDK на этапе конфигурации. ЗадайтеANDROID_HOMEилиsdk.dirвlocal.properties(compileSdk 37, targetSdk 36, minSdk 26). - Сборке только сервера не нужно ни то, ни другое:
./gradlew :server:run -PserverOnly.
Версии лежат в gradle/libs.versions.toml;
зависимости добавляются туда, а не «сырыми» координатами.
./gradlew :composeApp:run # десктопное приложение
./gradlew :composeApp:hotRunDesktop # десктоп с Compose Hot Reload
ANDROID_HOME=$HOME/Android/Sdk ./gradlew :androidApp:installDebug
SKERRY_JWT_SECRET=dev ./gradlew :server:run -PserverOnly # сервер синхронизации
docker compose up -d --build # сервер в Docker./gradlew test allTests # JUnit 5 — один `test` пропускает мультиплатформенные модули
./gradlew build # полный гейт, включая Android lint
./gradlew detektAll # статический анализ
./gradlew koverHtmlReport # покрытие
./gradlew :androidApp:compileDebugKotlin # Android-сторона изменения UIТестовый стек — kotlin("test") на бэкенде JUnit 5. Ни Kotest, ни MockK, ни ktlint в
репозитории нет: фейки пишутся руками, а линт — это Android lint внутри ./gradlew build.
UI-тестам нужен дисплей; CI гоняет их под xvfb-run --auto-servernum.
./gradlew :composeApp:packageDistributionForCurrentOS # .deb / .rpm / .msi / .dmg
./gradlew :composeApp:packageAppImage # переносимый .AppImage
./gradlew :composeApp:packagePortableZip # переносимый .zipПакет собирается под ОС и архитектуру машины сборки: arm64-.dmg выходит только на arm64
macOS.
ProGuard/минификация выключены намеренно для релиза десктопа: они ломали крипто-стек (JNA/libsodium, okio, подписанный jar BouncyCastle). Перед попыткой включить — прочитайте комментарий в
composeApp/build.gradle.kts.
Укажите другой XDG_CONFIG_HOME и соберите createDistributable — получится второй изолированный
инстанс (удобно проверять синхронизацию между «двумя устройствами» на одной машине).
После серии запусков Gradle ./gradlew --stop и убийство оставшегося KotlinCompileDaemon
освобождают заметный объём памяти.
Всё, что сложнее правки документации, проходит через собственную обвязку проекта, а не через разрозненные запуски Gradle — см. Тесты и гейт.
User guide
- Installation
- Getting started
- Hosts and connections
- Vault and credentials
- Terminal
- Files (SFTP)
- Port forwarding
- Remote desktops
- Snippets and runbooks
- Monitoring and guard
- AI assistant
- Sync and devices
- Teams and sharing
- Settings and shortcuts
- Android
- Troubleshooting
Development
- Architecture
- Building and running
- Connections and transports
- Terminal engine
- Vault and crypto
- Sync protocol
- Remote desktop stacks
- UI layer
- Testing and the gate
- Contributing and releases
Русский — оглавление