Gradle Как да зададете коренния път на изхода

Моите източници са в структура на папки като:

mygitroot/myproj/module1/src/main/groovy/com/mypak/module1 mygitroot/myproj/module2/src/main/groovy/com/mypak/module2 mygitroot/myproj/module3/src/main/groovy/com/mypak/ модул3

Gradle изгражда бурканите в структура на папки като:

mygitroot/myproj/build/libs/module1.jar mygitroot/myproj/build/libs/module2.jar mygitroot/myproj/build/libs/module3.jar

Искам да изведе към динамичната структура на папките по подразбиране, просто вкоренена в различна папка "nongitroot":

mybuildroot/myproj/build/libs/module1.jar mybuildroot/myproj/build/libs/module2.jar mybuildroot/myproj/build/libs/module3.jar

моята задача гласи следното:

task sourcesJar(type: Jar) {
    group 'Build'
    description 'An archive of the source code'
    classifier 'sources'
    from sourceSets.main.allSource
}

Има ли елегантен начин да промените само рута?


person solvingJ    schedule 03.02.2016    source източник
comment
Възможен дубликат на Промяна на работната директория на Gradle при компилиране на Groovy проект   -  person timtim17    schedule 03.02.2016
comment
Задайте свойството buildDir   -  person RaGe    schedule 03.02.2016
comment
Не работи според изискванията:   -  person solvingJ    schedule 03.02.2016
comment
Не работи според изискванията, предполагам, защото modules1-3 са подпроекти на родителски проект. Добавих buildDir=../my-build под allprojects{ и той създаде папката и създаде my-build/libs/parent.jar и my-build/temp. Но също така създаде my-build в основата на моя проект, с поддиректории /classes, /libs и /tmp. Вътре /libs бяха всичките 3 буркана... module1.jar, module2.jar, module3.jar. Много изненадващо. Така че изглежда, че ще трябва да посоча всеки подпроект buildDir статично, в build.gradle за всеки модул (пример: myproj/src/module1). Правилно?   -  person solvingJ    schedule 03.02.2016
comment
Просто задайте buildDir на родителския проект, а не на подпроектите.   -  person RaGe    schedule 03.02.2016
comment
Но както казах, не прави това, което поисках.   -  person solvingJ    schedule 03.02.2016
comment
Защо просто не ги изградите както обикновено, след това имате задача, която да ги движи. Няма ли да е по-лесно, отколкото да се опитвате да хакнете пътя за изграждане на jar файлове?   -  person tim_yates    schedule 03.02.2016
comment
Защото никой не беше предложил това досега :) Благодаря Тим! Също така, не мислех, че ще бъде хак, мислех, че ще бъде просто конфигурируемо нещо, като повечето променливи на пътя. Ще преместя, както предложихте, но избирателното преместване само на подпапки, които съдържат JAR, на ново място и поддържането на структурата на папките ще бъде нетривиален скрипт. Освен това това е първият ми проект с gradle.   -  person solvingJ    schedule 03.02.2016


Отговори (1)


Използване на отговор от tim_yates - Оказва се, че това не е конфигурируема опция в Gradle и следователно не е възможна първоначално. Вместо това ще създадем задача за преместване.

person solvingJ    schedule 03.02.2016