Изменить каталог сборки Gradle в Android Studio?

Я только что установил Android Studio, и я только учусь строить с использованием Gradle. Однако при настройке проекта по умолчанию мои сборки находятся в каталоге проекта, и я хотел бы, чтобы они были размещены в другом месте (предпочтительно за пределами каталога проекта). Можно ли этого добиться? Где я могу внести изменения и какие изменения я сделаю?

5 ответов

Решение

В корне build.gradle

allprojects {
    buildDir = "/path/to/build/${rootProject.name}/${project.name}"
}

Смотрите также Gradle глобальный каталог сборки

и документы https://gradle.org/docs/current/userguide/writing_build_scripts.html

Вы можете передать свойство "buildDir" в gradlew.bat (я бы предположил, что вы можете сделать это и в версии для Linux, но я не проверял это)

Пример:

gradlew.bat assembleRelease -PbuildDir="C:\BuildFolder"

При создании нового приложения с использованием Kotlin DSL по умолчанию действительно не работает. Однако,builDir = file("path")все еще существует, хотя, тем не менее, он устарел. ПокаsetBuildDir("path")является его прямым преемником, однако в то же время он также вышел из употребления и был заменен следующим.

По крайней мере, для Kotlin DSL, последний теперь также устарел, и вам следует переключиться на следующий.

      layout.buildDirectory.set(file("C:/Users/YourUserNameHere/AppData/Local/Android/build/${rootProject.name}/${project.name}"))

Несмотря на свое названиеfile()действительно работает и для путей к каталогам

Что касается старого Groovy GradlebuilDir = "path"по-прежнему является «неустаревшим» способом.

Создал новое приложение за несколько дней с

      Android Studio Giraffe | 2022.3.1 Patch 4
Build #AI-223.8836.35.2231.11090377, built on November 13, 2023
Runtime version: 17.0.6+0-b2043.56-10027231 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

и вышеперечисленное больше не работает. Я ненавижу это.

Но обнаружил, что этот делает

      allprojects {
    setBuildDir("C:/Users/YourUserNameHere/AppData/Local/Android/build/${rootProject.name}/${project.name}")

}

Я использую это, когда хочу запустить/скомпилировать это/любое приложение, пока оно находится в «Моем диске» Google. Таким образом, я могу писать код на нескольких компьютерах.

Файл проекта iml имеет атрибут BUILD_FOLDER_PATH. Я еще не пытался изменить его сам, поэтому не уверен, что это сработает. Значением по умолчанию является $MODULE_DIR$/build.

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

Другие вопросы по тегам