Как пересобрать проект в android studio
Перейти к содержимому

Как пересобрать проект в android studio

  • автор:

Как собрать android проект с помощью NDK? есть файлы .mk и библиотеки?

Как собрать android проект с помощью NDK? есть файлы .mk и библиотеки?

  • Вопрос задан более трёх лет назад
  • 64 просмотра

Комментировать

Решения вопроса 1

AleksandrFl @AleksandrFl Автор вопроса

Создать папку jni:
app/scr/main/jni
в нее поместить файлы библиотек и файлы mk
в androidmanifest добавить следующее

sourceSets.main < jni.srcDirs = [] // ndk-build.cmd needs to be invoke from cmd jniLibs.srcDir 'src/main/libs' >

см. видео https://www.youtube.com/watch?v=kFtxo7rr2HQ
установить jdk 8 с сайта oracle
перейти в настройки студии File/Over Settings/Default Project Structure
и указать папку с установленным jdk
C:\Program Files (x86)\Java\jdk1.8.0_261
команды в терминале для запуска сборки:

cd C:\Users\user\AndroidStudioProjects\MyApplication5\app\src\main C:\Users\user\AppData\Local\Android\Sdk\ndk\21.3.6528147\build\ndk-build.cmd

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Сборка Android приложения без Studio

В данном руководстве я актуализировал разрозненные инструкции на текущий момент (май 2022 года). Если совсем коротко, то собрать приложение можно командой:

gradlew assembleDebug или gradlew assembleRelease

Но как всегда есть нюанс 😉 Что нужно минимально поставить на ноутбук или компьютер, а главное где это скачать?

Потребуется скачать и настроить 2 вещи Jdk и Command line tools only.

JAVA DEVELOPER KIT

Нужен именно JDK. В его состав входит компилятор. JRE не подойдет.

Если у Вас уже стоит JDK давайте проверим, что настроено правильно.

C:> cd %JAVA_HOME%

Не сработало — нет переменной окружения . Исправляем.

C:\Program Files\BellSoft\LibericaJDK-11-Full>java -version

openjdk version «11.0.12» 2021-07-20 LTS OpenJDK Runtime Environment (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM (build 11.0.12+7-LTS, mixed mode)

нет вывода как выше — директория bin не добавлена в пути

Обратите внимание на версию. Требуется 11.x.x

Установка JDK

Найти откуда скачать дистрибутив — наверная самая сложная задача. Для разработчиков 1С проще всего взять дистрибутив Liberica, скачав ее с сайта релизов 1С. Подтверждаю, что с ней андроид приложения замечательно собираются.

Если посмотрим в папки Андроид студии увидим, что сейчас использует

Без регистрации и смс доступно https://jdk.java.net/archive/ только версия 11.0.2 (отстает на 9 от используемой сейчас в студии).

Будем настраивать в варианте без установщика. Т.е. распакуем архив самостоятельно и настроем нужные переменные среды в ручную.

1. Распакуем файлы из архива в c:\Jdk11

Не удержался, чтобы не привести скриншот моего любимого файлового менеджера.

2. Добавляем переменную среды JAVA_HOME

Если у Вас есть значок моего компьютера на рабочем столе, то жмем по нему правой кнопки мыши. Параметры.

Или идем через параметры (н-р через кнопку Пуск. Шестерёнка) Система. О программе. В правой колонке синяя ссылка Дополнительные параметры системы.

Открылся диалог Свойства системы. Вкладка дополнительно. Переменные среды.

3. Добавляем в пути %JAVA_HOME%\bin

Для этого находим переменную path. Встали на нее. Изменить. Создать. Мы добавили новую строчку в диалоге. Редактируем.

%JAVA_HOME%\bin — означает подставить введенное на предыдущем шаге значение c:\Jdk11 и дописать к нему \bin . У вас должен быть введен реальный путь c:\Jdk11\bin

Чтобы не возвращаться к этому еще раз настройку утилит командной строки начнем с ввода переменных окружения.

Установка Command line tools для Android

4. Добавляем переменную среды ANDROID_HOME значение c:\android

5. В переменную Path добавляем %ANDROID_HOME%\cmdline-tools\latest\bin

Напомню еще раз . Полный реальный путь. c:\android\cmdline-tools\latest\bin

Закрываем все диалоги и окна, если все ввели без опечаток, то больше они нам не потребуются.

6. Скачиваем и распаковываем архив

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

Создайте папку c:\android . Распакуйте в нее архив. Войдите в cmdline-tools. Создайте папку latest. Переместите остальные файлы и папки в неё.

Теперь у нас есть инструмент с помощью которого можно доустановить остальные нужные компоненты.

7. c:>sdkmanager —list

Скачает список доступных .

8. c:>sdkmanager —install «platform-tools»

принимаем лицензию ответив Y

Смотрим в своем проекте нужную версию платформы . В моем примере 32-я .

9. c:>sdkmanager —install «platforms;android-32»

На этом подготовка завершена.

Собираем проект на практике

Для тестов использован дешевый ноутбук с алиэкспресс (210$). На корпусе нет никаких надписей, в общем настоящий китайский ноунейм 2021 года.

ОЗУ 6 гб. Android Studio запустить можно, но работать не комфортно.

Проверим как этот ноут будет справляться со сборкой через командную строку.

Напомню мы установили и настроили два обязательных компонента для начала сборки. В настоящий момент на диске мы заняли 289M — папка Jdk , 220M — папка Android. Папка андроид будет разрастаться. Также в папке пользователя будут созданы автоматически две служебных папки для кэширования. Папка .android уже существует и занимает 2М. В момент первой сборки появиться еще .gradle

Скачаем с гитхаба демо проект для этой статьи. Минимальный пример создан в студии через визард.

Если Вы не знакомы с гитом, то скачайте в виде архива. кнопка “Code” . Download .zip

Для начала соберем отладочную версию приложения

c:\work\androidHello>gradlew assembleDebug

В первый раз процесс длительный. Сначала скачается gradle.

В ходе сборки будут скачиваться остальные нужные зависимости. Займет это 10-15 минут.

Папка c:\android подросла до 1G. В папке пользователя появилась .gradle и в ней файлов на 632 мегабайта.

Что изменилось в самой папке приложения?

Добавилась c:\work\androidHello-main\.gradle со служебными файлами для оптимизации повторной сборки.

Появилась c:\work\androidHello-main\app\build . В нашем проекте один модуль. Аналогичная папка создается для каждого модуля в проекте.

А где же собранное приложение ?

Нужный нам файл создался в папке build подпапка outputs . Собирали мы apk и следующая папка в пути называется также. Вариант сборки для отладки, поэтому дальше debug. И вот мы видим результат.

c:\work\androidHello-main\app\build\outputs\apk\debug\apk\debug\apk-debug.apk

В данном случае места на жестком диске нам потребовалось меньше двух гигабайт. Если подключать больше зависимостей, собирать под разные целевые версии андроида и т.д. Места потребуется значительно больше. Легко это все распухнет со временем до 40 гигабайт, а то и более.

Замеры времени сборки проектов

Мы собрали приложение в первый раз за 12 минут. В данном случае большинство времени было потрачено на скачивание нужных библиотек.

Попробуем запустить еще раз.

c:\work\androidHello>gradlew assembleDebug

7 секунд. Что произошло. GRADLE проверил файлы на изменения и ничего пересобирать не стал.

Давайте почистим наш проект

./gradlew clean
Uses your project’s gradle wrapper to execute your project’s clean task. Usually, this just means the deletion of the build directory.

Это полностью аналогично действиям в студии Android Studio —> Build —> Clean или если бы вручную удалили папку c:\work\androidHello-main\app\build.

Запускаем gradlew assembleDebug — 59 секунд. Увы но даже маленький проект собирается целую минуту.

Запустим еще раз сборку — 5 секунд (время немного плавает. Аналогичное действие в прошлый раз заняло 7 секунд)

Попробуем внести небольшую правку в исходный код.

Дополнил код парой букв . Исправив home на myhome.

7 секунд . 4 задачи отработали. 30 не требовали повторного запуска.

Сборка подписанного приложения

Нельзя считать статью о сборке полной, если хотя бы кратко не упомянуть этот момент. Сразу предупрежу, что следующие правки будут содержать секретную информацию и не все из них можно держать под контролем версий. Особенно если Вы используете публичный репозиторий. Положите в проект пример файла, а реальный добавьте в список игнорируемых.

Начнем с модификации app/build.gradle

android < … signingConfigs < release < if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) < storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD >> > buildTypes < release < … signingConfig signingConfigs.release >> > 

Пока ничего секретного нет. Добавили конфиг для задачи подписи и дополнительный шаг в релиз.

А вот с файлом gradle.properties уже нужно решать проблему безопасности.

# app sign MYAPP_RELEASE_STORE_FILE=my-release-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias MYAPP_RELEASE_STORE_PASSWORD=real_pasword_there MYAPP_RELEASE_KEY_PASSWORD=real_pasword_there

например оригинальный файл добавить в игнорируемые. Рядом положить дополненный этими строками заглушками как пример. Н-р как gradle.properties.example

С реальными строчками хранить отдельно вместе с файлом my-release-key.keystore

Хранилище ключа может иметь расширение .keystore или .jks (то, которое укажете в команде его генерации).

Ключ подписи использовать готовый или если его нет создать можно командой keytool. В случае когда пишет, что не знает такую команду, то неправильно добавили к пути c:\Jdk11\bin (директорию куда ставили JDK).

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

my-release-key.keystore — имя файла хранилища Н-р: your.jks
my-key-alias — имя ключа в хранилище, часто key0

После запуска команды отвечайте на вопросы программы. Код страны единственное место где есть контроль правильности. Пишем ru . Остальные вещи лучше тоже заполнять латиницей.

Если прописать так

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

И Вы уже догадались, что собрать подписанное приложение это команда

gradlew assembleRelease

В завершение

Как видите даже на слабом компьютере задача сборки андроид приложения вполне решаема.

К сожалению, это не заменит полноценно андроид студию.

Интегрированная среда разработки это не только подсветка синтаксиса. Это еще множество других полезных вещей. Работая в студии не нужно даже запускать приложение, чтобы увидеть 90% ошибок.

Android + NDK пересобрать проект

У меня MacOS, Android Studio и проект NDK. Вношу изменения в код C++, но он не отрабатывает, говорят что надо пересобрать проект для этого. Никогда не работал с NDK, как пересобрать проект, чтобы все вносимые изменения в С++ применялись?

Отслеживать
задан 10 авг 2016 в 10:43
inkognitum inkognitum
939 1 1 золотой знак 10 10 серебряных знаков 21 21 бронзовый знак

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Если вы используете Android Studio тогда: Build -> Rebuild Project

Отслеживать
ответ дан 10 авг 2016 в 10:59
Kirill Stoianov Kirill Stoianov
6,148 6 6 золотых знаков 30 30 серебряных знаков 65 65 бронзовых знаков

Странно, но почему то внесенные изменения в файлы C++ не отрабатывают. Я закомментировал одну функцию, но она продолжает отрабатывать.

10 авг 2016 в 11:00
Попробуйте Build -> Clean Project а потом уже Build -> Build Project
10 авг 2016 в 11:02
А еще возможно у вас Instant Run включен, если включен — отключите
10 авг 2016 в 11:02

  • android
  • android-ndk
  • build
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Сборка Java-проекта с использованием Gradle

Этот урок освещает создание вами простого Java-приложения с использованием Gradle.

Что вы создадите

Вы создадите простое приложение и соберете его с помощью Gradle.

Что вам потребуется

  • Примерно 15 минут свободного времени
  • Любимый текстовый редактор или IDE
  • JDK 6 и выше

Как проходить этот урок

Как и большинство уроков по Spring, вы можете начать с нуля и выполнять каждый шаг, либо пропустить базовые шаги, которые вам уже знакомы. В любом случае, вы в конечном итоге получите рабочий код.

Чтобы начать с нуля, перейдите в Настройка проекта.

  • Загрузите и распакуйте архив с кодом этого урока, либо кнонируйте из репозитория с помощью Git: git clone https://github.com/spring-guides/gs-gradle.git
  • Перейдите в каталог gs-gradle/initial
  • Забегая вперед, установите Gradle

Когда вы закончите, можете сравнить получившийся результат с образцом в gs-gradle/complete .

Настройка проекта

Для начала вам необходимо настроить Java-проект перед тем, как собрать его Gradle’ом. Т.к. урок посвящен Gradle, сделаем проект максимально простым, насколько это возможно.

Создание структуры каталогов

В выбранном вами каталоге проекта создайте следующую структуру каталогов; к примеру, командой mkdir -p src/main/java/hello для *nix систем:

└── src └── main └── java └── hello

Внутри src/main/java/hello директории вы можете создать любые Java-классы, какие вы хотите. Для простоты и согласованности с остальной частью урока, Spring рекомендует вам создать два класса: HelloWorld.java и Greeter.java .

package hello; public class HelloWorld < public static void main(String[] args) < Greeter greeter = new Greeter(); System.out.println(greeter.sayHello()); >>
package hello; public class Greeter < public String sayHello() < return "Hello world!"; >>

Установка Gradle

Теперь, когда у вас есть проект, который вы можете собрать с Gradle, вам нужно установит сам Gradle.

Gradle можно получить, скачав zip-файл с gradle.org/downloads. Необходимы только бинарные файлы, так что ищите ссылку на архив с именем gradle-version-bin.zip. (Вы также можете выбрать gradle-version-all.zip, тем самым получите исходники, документацию и бинарные файлы.)

Распакуйте архив и добавьте путь к каталогу bin в переменную окружения path.

Чтобы протестировать правильность установки Gradle, запустите в командной строке:

gradle

Если всё было сделано правильно, то вы увидите сообщение:

:help Welcome to Gradle 1.8. To run a build, run gradle . To see a list of available tasks, run gradle tasks To see a list of command-line options, run gradle --help BUILD SUCCESSFUL Total time: 2.675 secs

Теперь у вас есть установленный Gradle.

Что может делать Gradle

Теперь, когда Gradle установлен, посмотрим, что он может делать. Прежде, чем вы создадите build.gradle для проекта, выможете проверить, какие доступны задачи:

gradle tasks

Вы должны увидеть список доступных задач. Если вы запустите Gradle в каталоге, в котором нет ещё файла build.gradle, то увидите несколько самых элементарных задач:

:tasks == All tasks runnable from root project == Build Setup tasks setupBuild - Initializes a new Gradle build. [incubating] wrapper - Generates Gradle wrapper files. [incubating] == Help tasks dependencies - Displays all dependencies declared in root project 'gs-gradle'. dependencyInsight - Displays the insight into a specific dependency in root project 'gs-gradle'. help - Displays a help message projects - Displays the sub-projects of root project 'gs-gradle'. properties - Displays the properties of root project 'gs-gradle'. tasks - Displays the tasks runnable from root project 'gs-gradle'. To see all tasks and more detail, run with --all. BUILD SUCCESSFUL Total time: 3.077 secs

Не смотря на то, что эти задачи доступны, они не представляют большого значения без конфигурации для сборки проекта. С build.gradle файлом, некоторые задачи будут более полезны. Список задач будет увеличиваться при добавлении плагинов в build.gradle , таким образом вы будете время от времени запускать tasks, чтобы проверить, какие задачи доступны.

Говоря о добавлении плагинов, в следующей части урока вы добавите плагин, который отвечает за базовую функциональность сборки Java-проектов.

Сборка Java кода

Начнем с простого, создадим очень простой build.gradle в корневой папке проекта(там, где src), который содержит только одну строчку:

apply plugin: 'java'

Эта единственная строчка в конфигурации сборки приносит значительную пользу. Запустите gradle tasks снова и вы увидите новые задачи в списке, включая задачи для сборки проекта, создания JavaDoc и запуска тестов.

Вы будете изпользовать задачу gradle build достаточно часто. Эта задача компилирует, тестирует и упаковывает код в JAR-файл. Вы можете запустить её таким образом:

gradle build

Через несколько секунд, «BUILD SUCCESSFUL» будет означать, что сборка прошла успешно.

  • classes. Скомпилированные .class файлы
  • reports. Отчеты в течении сборки(такие как отчеты о тестировании)
  • libs. Библиотеки для сборки проекта(обычно в виде JAR и/или WAR файлов)

Классы в каталоге с .class файлами генерируются во время сборки Java-кода. Соответственно, вы должны найти там HelloWorld.class и Greeter.class.

На данный момент проект не имеет зависимостей от библиотек, поэтому ничего нет в папке dependency_cache.

Каталог отчетов должен содержать отчет о выполнении тестов для проекта. Т.к. проект пока не содержит тестов, данный отчет будет нам неинтересен.

Каталог библиотек должен содержать JAR-файл с названием каталога проекта. В дальнейшем, вы увидите, как указывать имя JAR-файла и его версию.

Объявление зависимостей

Простой «Hello World» пример полностью автономный и не зависит от каких-либо дополнительных библиотек. Однако, большинство приложений зависит от внешних библиотек, с реализацией распостраненного и/или сложного функционала.

К примеру, предположим, что в дополнение к «Hello World!» вы хотите, чтобы приложение печатало текущую дату и время. Вы могли бы использовать функциональность из стандартных(native) Java библиотек, но мы можем сделать это и другими интересными способами, например с помощью Joda Time библиотеки.

Во первых, изменим HelloWorld.java , как показано ниже:

package hello; import org.joda.time.LocalTime; public class HelloWorld < public static void main(String[] args) < LocalTime currentTime = new LocalTime(); System.out.println("The current local time is: " + currentTime); Greeter greeter = new Greeter(); System.out.println(greeter.sayHello()); >>

Здесь HelloWorld использует Joda Time LocalTime класс для получения и печати текущего времени.

Если бы вы запустили gradle build для сборки проекта сейчас, то получили бы ошибку сборки, потому что вы не объявили Joda Time компилируемую зависимость в сборке.

Во-вторых, вам необходимо добавить источники сторонних библиотек:

repositories

Блок repositories означает, что сборка должна разрешать зависимости из Maven Central репозитория. Gradle опирается в основном на многие соглашения и возможности, определенные в инструменте сборки Maven, включая использование Maven Central как источник библиотек зависимостей.

Теперь, когда мы готовы к приему сторонних библиотек, объявим их:

dependencies

В блоке dependencies вы описываете единственную зависимость Joda Time. В частности, вы запрашиваете(читаем справа на лево) версию 2.2 библиотеки joda-time в joda-time группе.

Другое, что хотелось бы отметить, это необходимость указания ключевого слова compile , обозначающее доступность библиотеки во время компиляции(а если бы вы собирали WAR файл, то была бы включена /WEB-INF/libs папка в WAR). Также существуют другие заметные ключевые слова, среди которых:

  • providedCompile . Требуемые зависимости для компиляции кода, но которые будут доступны во время работы кода контейнера(например, Java Servlet API)
  • testCompile . Зависимости, используемые для компиляции и запуска тестов, но не требуемые для компиляции и запуска кода проекта

И наконец, назначим имя для нашего JAR артефакта.

jar блок определяет, как JAR файл будет назван. В данном случае мы получим gs-gradle-0.1.0.jar .

Теперь, если мы запустим gradle build , Gradle должен будет загрузить Joda Time зависимость из репозитория Maven Central и успешно собрать проект.

Сборка проекта с Gradle Wrapper

Gradle Wrapper является предпочтительным способом для начала Gradle сборки. Он содержит bat-скрипты для Windows и shell-скрипты для OS X и Linux. Эти скрипты позволяют вам запускать сборку с Gradle без необходимости установки самого Gradle в вашу систему. Чтобы это стало возможным, добавьте следующий блок в конец вашего build.gradle :

task wrapper(type: Wrapper)

Запустите следующую команду для загрузки и инициализации wrapper-скриптов:

gradle wrapper

После того, как задачи отработают, вы заметите несколько новых файлов. Два скрипта в корневом каталоге, а jar-файл и properties-файл оболочки будут в папке gradle/wrapper .

└── initial └── gradlew └── gradlew.bat └── gradle └── wrapper └── gradle-wrapper.jar └── gradle-wrapper.properties

Gradle Wrapper теперь доступен вам для сборки проекта. Добавьте его в вашу систему контроля версий и каждый, кто клонирует ваш проект, сможет его собрать точно таким же способом. Gradle Wrapper можно использовать наравне с установленным Gradle. Pfgecnbnt wrapper-скрипт для выполнения задичи сборки точно так же, как вы делали ранее:

./gradlew build

Ранее, когда вы запускали wrapper с конкретной версией Gradle, он загружал и кешировал бинарники Gradle для соответствующей версии. Gradle Wrapper спроектирован таким образом, чтобы было возможно сохранить его в репозитории вашей VCS и любой, кто его клонирует, сможет собрать ваш проект без необходимости устанавливать и настраивать Gradle определенной версии.

На данном этапе у вас есть собранный ваш код. В результате вы увидете:

build ├── classes │ └── main │ └── hello │ ├── Greeter.class │ └── HelloWorld.class ├── dependency-cache ├── libs │ └── gs-gradle-0.1.0.jar └── tmp └── jar └── MANIFEST.MF

В сборке содержатся два класса Greeter и HelloWorld , как и ожидалось, а также JAR-файл. Окиньте беглым взглядом:

$ jar tvf build/libs/gs-gradle-0.1.0.jar 0 Fri May 30 16:02:32 CDT 2014 META-INF/ 25 Fri May 30 16:02:32 CDT 2014 META-INF/MANIFEST.MF 0 Fri May 30 16:02:32 CDT 2014 hello/ 369 Fri May 30 16:02:32 CDT 2014 hello/Greeter.class 988 Fri May 30 16:02:32 CDT 2014 hello/HelloWorld.class

Это содержимое пакета файлов классов. Важно отметить, что даже, если вы и объявили joda-time как зависимость, библиотека не включена в пакет. И JAR-файл будет неспособен к выполнению.

Чтобы сделать этот код выполняемым, мы можем использовать плагин application . Добавьте его в ваш build.gradle файл.

apply plugin: 'application' mainClassName = 'hello.HelloWorld'

Затем просто запустите ваше приложение!

$ ./gradlew run :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :run The current local time is: 16:16:20.544 Hello world! BUILD SUCCESSFUL Total time: 3.798 secs

Остановимся подробнее на упаковке зависимостей. К примеру, если бы мы собирали WAR-файл, общепризнанный формат, ассоциирующийся с упаковкой сторонних зависимостей, мы бы могли использовать WAR плагин. Если вы используете Spring Boot и хотите получить исполняемый JAR-файл, тогда вам пригодится spring-boot-gradle-plugin. На данном этапе, gradle недостаточно знает о выбранной вами системе. Но этого достаточно, чтобы приступить к работе с gradle.

В конечном счете, у вас должен получиться такой build.gradle файл:

apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'application' mainClassName = 'hello.HelloWorld' // tag::repositories[] repositories < mavenLocal() mavenCentral() >// end::repositories[] // tag::jar[] jar < baseName = 'gs-gradle' version = '0.1.0' >// end::jar[] // tag::dependencies[] dependencies < compile "joda-time:joda-time:2.2" >// end::dependencies[] // tag::wrapper[] task wrapper(type: Wrapper) < gradleVersion = '1.11' >// end::wrapper[]

Здесь присутствует много закомментированных открывающихся и закрывающихся вставок. Они позволяют разделить на части файл сборки для наглядного объяснения данного урока. Их необязательно использовать в вашем рабочем файле сборки.

Итог

Поздравляем! Вы создали простой, но эффективный файл сборки Gradle для сборки Java проектов.

С оригинальным текстом урока вы можете ознакомиться на spring.io.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *