如何在命令行上列出 gradle 模块?

Jin*_*Jin 6 android gradle android-gradle-plugin

我有一个项目目录,如下所示:

\n
MyProject\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 *app*\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 gradle\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 gradle.properties\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 gradlew\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 gradlew.bat\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 keystore.properties\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 local.properties\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 *module2*\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 *module3*\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.gradle\n
Run Code Online (Sandbox Code Playgroud)\n

其中模块已突出显示。

\n

我知道我可以通过执行以下操作来构建特定模块/子项目的任务:

\n
./gradlew module:assemble\n
Run Code Online (Sandbox Code Playgroud)\n

我可以通过以下方式获得所有任务:

\n
./gradlew tasks\n
Run Code Online (Sandbox Code Playgroud)\n

但是我怎样才能获得模块本身的名称(即app、module2、module3)?

\n

Dan*_*ner 13

projects是您正在寻找的任务。例如:

> ./gradlew -q projects

------------------------------------------------------------
Root project 'my-project-name'
------------------------------------------------------------

Root project 'my-project-name'
+--- Project ':apps'
|    \--- Project ':apps:api'
\--- Project ':libs'
     +--- Project ':libs:common'
     +--- Project ':libs:http-client'
     +--- Project ':libs:http-server'
     \--- Project ':libs:test-common'

To see a list of the tasks of a project, run gradlew <project-path>:tasks
For example, try running gradlew :apps:tasks
Run Code Online (Sandbox Code Playgroud)


小智 8

这不是一个最佳解决方案,但在我们获得合适的解决方案之前可能会有用。运行这个命令

./gradlew tasks --all
Run Code Online (Sandbox Code Playgroud)

您将获得所有模块的所有任务,因此要获得可组装的所有模块,您可以使用此 oneliner:

./gradlew tasks --all | grep ":assemble" | cut -d: -f1 | sort -u
Run Code Online (Sandbox Code Playgroud)