我在settings.gradle
中的include
很长:
include 'project-subproj1', 'project-subproj2', 'project-subproj3', 'project-subproj4'
在settings.gradle
中分开长行的哪种正确语法?
我想:
include 'project-subproj1',
'project-subproj2',
'project-subproj3',
'project-subproj4'
,但似乎
include 'project-subproj1',
'project-subproj2',
'project-subproj3',
'project-subproj4'
也有效。
settings.gradle
是常规的时髦脚本吗?
是设置。是的,是。
只是要解释一下, gradle 读取settings.gradle
文件,它实际上创建了一个设置类的实例。
如果您在Setting
类上看到了Incluble方法规格,则是这样的:
void include(java.lang.String[] strings);
因此,该方法接受String
类的数组作为参数。在Groovy中,您可以以不同的方式调用此方法:
include "project1", "project2"
include "project1",
"project2"
include (['project1',
'project2'] as String[])
include ('project1',
'project2')
是的,在gradle中,每个以 .gradle
结尾的文件都是常规的groovy脚本。其他文件扩展名(例如.properties
(指示了Gradle中的无脚本文件。
有几个惯例定义了特殊的时髦脚本:
-
build.gradle
构建配置脚本 -
settings.gradle
作为构建设置脚本 -
init.gradle
在USER_HOME/.gradle/
中用于全局初始化脚本
您可以创建其他.gradle
槽脚本并通过apply from:
使用它们或将其放置在特殊位置(例如USER_HOME/.gradle/init.d/
以将其用作初始化脚本(。
所有这些脚本之间的主要区别是它们所应用的上下文。所有脚本首先实现Script
接口和第二个(特定于角色的(接口。Gradle文档称此行为为"附加委托对象"。
-
build.gradle
脚本应用于Project
对象 -
settings.gradle
脚本应用于Settings
对象 - 初始化脚本应用于
Gradle
对象
现在,我们甚至可以理解上述代码示例:
include 'project-subproj1',
'project-subproj2',
'project-subproj3',
'project-subproj4'
Settings
接口定义了include
方法,该方法以Groovy样式称为:无括号和跨线路。您也可以在settings.gradle
文件中应用逻辑,例如在包括特定项目之前需要条件。
是, settings.gradle 是一个groovy脚本,就像其他gradle脚本一样。 settings.gradle 在初始化阶段执行,因此,它是指定子项目的多个项目必不可少的文件,您可以以几种方式应用。
您也可以单独包含每个项目,最后效果相同。
include 'project-subproj1'
include 'project-subproj2'
include 'project-subproj3'
include 'project-subproj4'
可以迭代列表。
['project-subproj1',
'project-subproj2',
'project-subproj3',
'project-subproj4'].each({include it})
取决于您的感觉更可读/清洁。