Изпълнете задача за изграждане на gradle от всяко място

Опитвам се да създам моите gradle проекти от други места, различни от самата папка на проекта, но винаги казва, че не може да намери задача за изграждане.

Какво опитах досега:

sudo ./myprojects/myapp/gradlew build

sudo ./myprojects/myapp/gradlew ./myprojects/myapp/build

Как мога да изпълня задача за изграждане на gradle от всяко място?


person Marian Klühspies    schedule 03.09.2014    source източник
comment
Не е необходимо да изпълнявате компилация със sudo.   -  person Radim    schedule 04.09.2014


Отговори (3)


Различни хора са написали (и публикували) скриптове за изпълнение на gradlew от която и да е директория на подпроект (в компилация с множество проекти). За да изпълните надеждно Gradle от която и да е поддиректория, е необходимо да зададете „текущата директория на проекта“ чрез -p. Би било хубаво това ограничение да бъде премахнато (това би било добра заявка за функция).

person Peter Niederwieser    schedule 03.09.2014
comment
Благодаря ви, със sudo ./myproject/myapp/gradlew -p /myproject/myapp/build работи ;) има ли причини за тези ограничения? Няма смисъл в моите очи - person Marian Klühspies; 03.09.2014
comment
Gradle трябва да знае коя е текущата директория на проекта. В момента текущата директория на проекта е по подразбиране текущата работна директория. Освен ако не пропускам нещо, би трябвало да е възможно вместо това по подразбиране да е най-близката директория на подпроекта. Това обаче трябва да се направи вътре в Gradle, защото само Gradle знае какви са директориите на подпроекта. - person Peter Niederwieser; 03.09.2014
comment
Най-често изпълнявам задачи от обвивка, която има текуща директория в основния проект, използвайки команди като ./gradlew :myapp:test. - person Radim; 04.09.2014
comment
Добре, моя грешка, не работи. След като изпълня командата, Добре дошли в gradle... се подканва с Успешно изграждане - person Marian Klühspies; 09.09.2014
comment
реши го сега с помощта на cd /my/project/path/;./gradlew build - person Marian Klühspies; 09.09.2014

Можете да опитате този скрипт, който е дълъг 90 реда: https://github.com/dougborg/gdub

Или използвайте този лесен едноредов текст, който използвам аз:

function lookupgradle() { 
  find . .. ../.. ../../.. ../../../.. ../../../../.. ../../../../../.. -maxdepth 1 -name 'gradlew' -executable -print -quit
}

alias g='$(lookupgradle)'

Ако разберете, че все още е необходимо да посочите директория на проекта, добавете -p .:

alias g='$(lookupgradle) -p .'
person Nikita Tukkel    schedule 04.12.2019
comment
gng.dsun.org е наследник на gdub. Работя активно върху това. Оригиналният автор на gdub ми прехвърли този проект. Благодаря. - person SunLiWei; 02.02.2021

./usmobile-microservice/gradlew -p ./usmobile-microservice clean buildUI

./project_directory/gradlew -p ./project_directory clean build

работи за мен

person Servet Karabas    schedule 22.07.2020