Gradle и командная строка

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

Настройка ANDROID_HOME

Переменная среды ANDROID_HOME должна ссылаться на действительный Android SDK, прежде чем делать какие-либо действия в командной строке.

Windows: set ANDROID_HOME=C:/Path/To/Your/Android/Sdk

Linux, Mac OS X: export ANDROID_HOME=/Path/To/Your/Android/Sdk

Также вы можете создать файл с именем "local.properties" со следующим содержанием: sdk.dir /Path/To/Your/Android/Sdk

Запуск проекта

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

Запуск desktop проекта

gradlew desktop:run

Эта команда скомпилирует основной и desktop проект, и затем запустит desktop стартер. Рабочей директорией является assets директория Android проекта!

Запуск Android проекта

gradlew android:installDebug android:run

Эта задача создаст debug APK вашего приложения, установит его на первый подключенный эмулятор или устройство и запустит основную Activity. Процесс разделен на две задачи, потому что Android Gradle плагин позволяет создавать несколько версий вашего приложения (например: debug, release, ...). Вы можете найти более подробную информацию на сайте Android Gradle Plugin.

Запуск iOS проекта

gradlew ios:launchIPhoneSimulator

gradlew ios:launchIPadSimulator

gradlew ios:launchIOSDevice

Первые две команды запустят ваше приложение на эмуляторе iPhone или iPad, последняя команда запустит ios проект на подключенном устройстве, при условии, что оно готово. Пожалуйста, обратитесь к документации Apple о том, как подготовить устройство. Обратите внимание, что

Время компиляции

В первый раз, когда вы запустите ваш iOS проект, компиляция займет много времени. Время компиляции значительно снизится при последующих запусках

Запуск HTML проекта

gradlew HTML: superDev

Команда приведет к запуску приложения в GWT Super Dev режиме, который компилирует Java код в JavaScript и позволяет отлаживать Java код прямо в браузере. Если вы видите сообщение Next, visit: http://localhost:9876 в вашей оболочке, откройте браузер и перейдите по этому адресу. Перетащите "Dev Mode On" закладку на свою панель закладок браузера. Затем откройте http://localhost:8080/html. Это ваше работающее приложение в браузере! При изменении любого вашего Java кода в основном проекте, просто нажмите на закладку, затем нажмите кнопку "Compile". Изменения вступят в силу в течение нескольких секунд. Если вы измените ваши assets, то вы должны перезагрузить сервер командой выше.

Упаковка проекта

Каждый платформа имеет различные форматы дистрибутивов. В этом разделе мы увидим, как мы можем генерировать эти дистрибутивы через Gradle.

Упаковка desktop проекта

gradlew desktop:dist

Эта команда создаст исполняемый JAR файл, расположенный в desktop/build/libs/ директории. Он содержит весь необходимый код, а также все свои assets из директории android/assets и может быть запущен либо двойным щелчком или из командной строки с помощью команды java -jar jar-file-name.jar. У вашей аудитории должна быть установлена JVM. JAR файл будет работать на Windows, Linux и Mac OS X!

Упаковка JAR вместе с JVM

Если вы хотите упаковать для распространения ваш JAR вместе с JVM, то вы можете использовать packr tool. Таким образом, вашей аудитории не нужно будет устанавливать JVM, за счет увеличения размера приложения на 23-30Мб на каждой платформе.

Упаковка Android проекта

gradlew android:assembleRelease

Команда создаст не подписанный APK файл в android/build/apk директории. Вы можете установить этот APK файл на любое Android устройство, которое позволяет установку приложений из неизвестных источников. Для публикации приложения в Google Play Store вы должны подписать свой APK файл. Собранный командой выше APK будет уже в режиме релиза, вам нужно будет только следовать инструкциям по keytool и jarsigner.

Упаковка iOS проекта

gradlew ios:createIPA

Команда создаст IPA в ios/build/robovm директории, который вы опубликуете в Apple App Store. Вы можете просмотреть руководство Apple по публикации приложений в App Store.

Упаковка HTML проекта

gradlew html:dist

Команда скомпилирует ваше приложение в Javascript и поместит полученный JavaScript, HTML и assets файлы в html/build/dist/ директорию. Содержимое директории должно находится и быть доступно серверу, например: Apache или Nginx. Как будто это статический HTML/Javascript сайт. Там нет Java и Java-апплетов!

Если у вас установлен Python, то вы можете протестировать данный дистрибутив, выполнив следующие действия в html/build/dist директории.

python -m SimpleHTTPServer

Затем вы можете открыть браузер http://localhost:8000 и посмотреть ваш проект в действии.

Отладка и общие проблемы

Неудачное выполнение Gradle задач

Если при вызове Gradle, сборка или обновления заканчивается неудачей, то чтобы получить более подробную информацию выполните эту же команду и добавьте к ней --debug аргумент. Например: ./gradlew tasks --debug. Это даст вам StackTrace и лучшее представление о том, почему Gradle команде не удалось выполниться успешно.