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

Я хочу, чтобы он выводился в динамическую структуру папок по умолчанию, просто укорененную в другую папку «не gitroot»:

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
Установить свойство buildDir   -  person RaGe    schedule 03.02.2016
comment
Не работает по запросу:   -  person solvingJ    schedule 03.02.2016
comment
Я предполагаю, что не работает по запросу, потому что модули 1-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