什么是 "decoupled project" (Gradle)?

What is considered a "decoupled project" (Gradle)?

大家好,我正在制作一个 Cocos2d-x 游戏,其中包含 gradle 文件 我一直在寻找缩短构建时间的方法,我尝试使用谷歌搜索甚至查看 Gradle 文档,但是我似乎无法理解 "decoupled" 项目到底是什么?在我的 gradle.properties 中,它说明了这一点

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
#org.gradle.parallel=true

对于不熟悉 Cocos2d-x 的人,在 Android Studio Cocos2d-x 项目的 Gradle Scripts 文件夹中有 3 个 build.gradle 文件:

之后是 gradle-wrapper.propertiesproguard-rules.pro(MyGame)proguard-rules.pro(libcocos2dx)gradle.propertiessettings.gradle & local.properties

综上所述,我的项目是否被视为解耦项目?并且取消注释 org.gradle.parallel=true 会缩短构建时间,或者我会注意到什么完全不同?

通过运行以下命令检查应用的项目列表。

gradlew -q projects

它的输出是这样的

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'MyApplication'
+--- Project ':app'
\--- Project ':mylibrary'

根据 gradle link

Two projects are said to be decoupled if they do not directly access each other’s project model. Decoupled projects may only interact in terms of declared dependencies: project dependencies and/or task dependencies. Any other form of project interaction (i.e. by modifying another project object or by reading a value from another project object) causes the projects to be coupled.

如果应用正在使用类似

的依赖项
dependencies {

    implementation project(":mylibrary")
}

然后解耦