gradle.Settings多行语法



我在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.gradleUSER_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})

取决于您的感觉更可读/清洁。

最新更新