Groovy Gradle如何设置输出根路径

Groovy Gradle如何设置输出根路径,groovy,gradle,root,Groovy,Gradle,Root,“我的源”位于如下文件夹结构中: 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/module3 Gradle在文件夹结构中构建JAR,如: mygitroot/myproj/build/libs/module

“我的源”位于如下文件夹结构中:

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/module3

Gradle在文件夹结构中构建JAR,如:

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
}

是否有一种优雅的方法可以只更改根?

使用tim_yates的答案-结果表明,这在Gradle中不是一个可配置的选项,因此本机不可能。改为创建移动任务

Set
buildDir
property的可能重复项不按要求工作:不按要求工作,我猜是因为“模块1-3”是父项目的子项目。我在所有项目{下添加了buildDir=“../my build”,它确实创建了文件夹并创建了“my build/libs/parent.jar”和“my build/temp”。但它也在我的项目的根目录中创建了“my build”,其中“/classes”、“/libs”和“/tmp”子目录中“/libs”都是3个jar….“module1.jar”、“module2.jar”、“module3.jar”。非常令人惊讶。因此,似乎我需要在build.gradle中为每个模块静态地指定每个子项目buildDir(例如:“myproj/src/module1”)。对吗?为什么不按正常方式构建它们,然后执行一项移动它们的任务。这会比尝试破解jar文件的构建路径更容易吗?