как да контролирам къде се намират файловете и папките gradle/gradlew

В нов проект - в който използвам gradle/gradlew - искам да задам местоположението на различни gradle/gradlew файлове и папки на нещо различно от поведението по подразбиране.

говоря за:

  • папка gradle, с обвивка на подпапка (съдържаща gradle-wrapper.jar и gradle-wrapper.properties
  • folder build, с подпапки „classes“, „dependency-cache“, „libs“, „resources“ с всички видове xml файлове от отделни компоненти и „tmp“ с ​​подпапки „compileJava“ и „jar“.

Но как и къде да конфигурирам това?


person Pierre Smits    schedule 11.07.2016    source източник
comment
Защо искате да промените? Не забравяйте, че неговата конвенция над конфигурацията. Какво точно се опитвате да постигнете?   -  person MojoJojo    schedule 11.07.2016
comment
Вие сте прав: това е конвенцията над конфигурацията. Но конвенцията (наречете я политиката на компанията движи конвенцията в този сценарий). Следователно предоставеното по подразбиране не може да се приложи.   -  person Pierre Smits    schedule 12.07.2016
comment
Чудя се как все още може да има установена конвенция за Wrapper. Повечето други инструменти за изграждане не поддържат Wrapper. Maven едва наскоро добави един. Това ще направи много по-трудно разбирането на компилация за всеки нов в проекта, ако конвенциите по подразбиране се променят.   -  person Benjamin Muschko    schedule 15.07.2016
comment
Конвенцията е наистина досадна, когато се комбинира с автоматично попълване на обвивката. Без обвивката мога да напиша grad[tab] и тя автоматично се довършва до gradle (включително интервала в края) и аз въвеждам останалата част от моята команда. С обвивката въвеждам ./gra[tab] и тя се довършва автоматично до ./gradle, което не е обвивката, а папката, в която е обвивката, така че трябва да натисна w след раздела, преди да въведа опции. Възможността да преименувате папката gradle би била наистина удобна.   -  person rjmunro    schedule 20.01.2021


Отговори (1)


Можете да промените местоположението на Wrapper и файла със свойства, като зададете задача от тип Обвивка. Например:

task wrapper(type: Wrapper) {
    jarFile = file('mywrapper/wrapper.jar')
}

Изпълнението на gradle wrapper ще генерира следните файлове:

.
├── build.gradle
├── gradlew
├── gradlew.bat
└── mywrapper
    ├── wrapper.jar
    └── wrapper.properties

Изходната директория за изграждане по подразбиране може да бъде променена чрез метода Project.setBuildDir(Object). Например:

buildDir = file('target')
person Benjamin Muschko    schedule 12.07.2016
comment
Здравей Бенджамин. Благодаря за времето, за да отговоря на въпроса: Имам малък последващ въпрос: как да гарантирам, че изтеглените външни библиотеки се изтеглят в папка в моя проект, а не в скрита директория в директорията на потребителя? - person Pierre Smits; 13.07.2016
comment
Gradle изтегля зависимости в локалния си кеш в началната страница на потребителя на Gradle (по подразбиране ~/.gradle). Кешът се споделя между проекти. Ако промените началната страница на потребителя на Gradle в директория на проект, тогава ще трябва да я промените за всеки проект. Това ще има отрицателно въздействие върху производителността на компилацията ви, тъй като изтеглените зависимости и обвивки вече не могат да се споделят. - person Benjamin Muschko; 15.07.2016
comment
Разбирам, че това създава уникален набор за проект, но това се изисква в процеса на внедряване към UAT и PROD сървъри, които са насочени към максимално време на работа и производителност. - person Pierre Smits; 17.07.2016
comment
Не разбирам аргумента и неговата уместност за началната страница на потребителя на Gradle. Можете ли да поясните? - person Benjamin Muschko; 18.07.2016