Build 从任何位置执行渐变生成任务

Build 从任何位置执行渐变生成任务,build,gradle,gradlew,Build,Gradle,Gradlew,我试图从项目文件夹本身以外的其他位置构建gradle项目,但它总是说找不到构建任务 到目前为止我所尝试的: sudo./myprojects/myapp/gradlew build sudo./myprojects/myapp/gradlew./myprojects/myapp/build 如何从任何位置执行gradle构建任务?许多人编写(并发布)脚本,从任何子项目目录(在多项目构建中)执行gradlew。要从任何子目录可靠地执行Gradle,必须通过-p设置“当前项目目录”。取消此限制会很好

我试图从项目文件夹本身以外的其他位置构建gradle项目,但它总是说找不到构建任务

到目前为止我所尝试的:

sudo./myprojects/myapp/gradlew build

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


如何从任何位置执行gradle构建任务?

许多人编写(并发布)脚本,从任何子项目目录(在多项目构建中)执行
gradlew
。要从任何子目录可靠地执行Gradle,必须通过
-p
设置“当前项目目录”。取消此限制会很好(这将是一个很好的功能请求)。

您可以尝试此脚本,它有90行长:

或者使用我自己使用的简单的一行:

函数lookupgradle(){
查找../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../..-maxdepth 1-名称'gradlew'-可执行文件-打印-退出
}
别名g='$(lookupgradle)'
如果您发现仍然需要指定项目目录,请添加
-p.

alias g='$(lookupgradle)-p'

为我工作

谢谢你,与sudo在一起。/myproject/myapp/gradlew-p/myproject/myapp/build it works;)这种限制有什么原因吗?在我看来,这毫无意义。Gradle需要知道“当前项目目录”是什么。当前,“当前项目目录”默认为当前工作目录。除非我遗漏了什么,否则应该可以将其默认为“最近的子项目目录”。但是,这需要在Gradle内部完成,因为只有Gradle知道子项目目录是什么。大多数情况下,我使用
/gradlew:myapp:test
等命令从根项目中具有当前目录的shell运行任务。好吧,我错了,它不起作用。执行命令后,“欢迎使用gradle…”提示“Build successful”,现在使用“cd/my/project/path/;./gradlew Build”解决了这个问题。您不需要使用sudo运行构建。是gdub的继任者。我正在积极努力。gdub的原作者已将该项目转让给我。谢谢
./usmobile-microservice/gradlew -p ./usmobile-microservice clean buildUI

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