这两者有什么区别吗?案例A:
include ':con', ':conlib', 'aaa:test'
与案例B:
include 'aaa:test' include ':con' include ':conlib',
没有区别?或者是建立秩序的影响还是什么?
kupeojn61#
不,顺序(可能)并不重要。要清楚的是,这是一个有根据的猜测,在下面的文档链接我没有学到很多,但有三个原因,这必须是真的:
**1)更改include()调用的顺序不会使构建缓存无效。**这是一个很好的提示,表明Gradle团队并不认为include语句的顺序很重要。**2)文件没有规定一个必要的或有意义的顺序。**至少我可以从可用的链接告诉。**3)buildSrc在settings.gradle[.kts]之后编译。**Gradle 6之后的任何时间(参见here),buildSrc是在settings.gradle.kts * 之后编译的,并且buildSrc在您的构建中可用。因此,include()调用的顺序 * 不 * 重要是理所当然的,因为如果它们确实如此,它将过渡性地要求重新构建buildSrc,这将使整个构建无效。
include()
buildSrc
settings.gradle[.kts]
settings.gradle.kts
再说一次,只是基于观察的有根据的猜测,我希望这有帮助。
wfypjpf42#
订购include {submodule_name}的影响可在Gradle文档中找到。但也应该注意,它必须是{submodule_name},而不是{submodule_name}:{gardle_task}(就像aaa:test)。
include {submodule_name}
{submodule_name}
{submodule_name}:{gardle_task}
aaa:test
2条答案
按热度按时间kupeojn61#
不,顺序(可能)并不重要。要清楚的是,这是一个有根据的猜测,在下面的文档链接我没有学到很多,但有三个原因,这必须是真的:
**1)更改
include()
调用的顺序不会使构建缓存无效。**这是一个很好的提示,表明Gradle团队并不认为include语句的顺序很重要。**2)文件没有规定一个必要的或有意义的顺序。**至少我可以从可用的链接告诉。
**3)
buildSrc
在settings.gradle[.kts]
之后编译。**Gradle 6之后的任何时间(参见here),buildSrc
是在settings.gradle.kts
* 之后编译的,并且buildSrc
在您的构建中可用。因此,include()
调用的顺序 * 不 * 重要是理所当然的,因为如果它们确实如此,它将过渡性地要求重新构建buildSrc
,这将使整个构建无效。再说一次,只是基于观察的有根据的猜测,我希望这有帮助。
wfypjpf42#
订购
include {submodule_name}
的影响可在Gradle文档中找到。但也应该注意,它必须是
{submodule_name}
,而不是{submodule_name}:{gardle_task}
(就像aaa:test
)。