Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ConfigSlurper的groovy文件如何调用build.gradle中定义的方法?_Groovy_Gradle - Fatal编程技术网

ConfigSlurper的groovy文件如何调用build.gradle中定义的方法?

ConfigSlurper的groovy文件如何调用build.gradle中定义的方法?,groovy,gradle,Groovy,Gradle,我正在处理一个项目,它的构建逻辑是在gradle中定义的,并且有一个build.gradle文件。现在,我们想使用groovy的ConfigSluber管理项目的属性。而且,我已经将config.groovy文件放在包含项目所有帮助程序类的文件夹中。conf.groovy文件的内容如下: categories { includeCategories = defaultIncludeCategories() excludeCategories = defaultExcludeCategories(

我正在处理一个项目,它的构建逻辑是在gradle中定义的,并且有一个build.gradle文件。现在,我们想使用groovy的ConfigSluber管理项目的属性。而且,我已经将config.groovy文件放在包含项目所有帮助程序类的文件夹中。conf.groovy文件的内容如下:

categories {
includeCategories = defaultIncludeCategories()
excludeCategories = defaultExcludeCategories()
}

String defaultIncludeCategories() {
   def include = 'default'
   if( isAbcJob() ) {
      include = 'tier0'
   }
   logger.info "defaultIncludeCategories: $include"
   include
}
现在,正如您所看到的,我需要在配置文件中使用一个名为isAbcJob的方法,但这个方法存在于build.gradle中,该文件调用conf.groovy文件进行属性管理

底线是conf.groovy脚本如何知道isAbcJob方法在哪里


请提供建议。

我发现Gradle论坛上提出的以下问题非常有用。而且,除非您通过任务访问其他gradle脚本的方法,否则无法访问这些方法:


你为什么要这样做,而不是从:申请调用单独的gradle脚本?例如:@tim_yates我是gradle的新手,请耐心听我说。我尝试了你的建议,但发现错误“isAbcjob”。而且,如果您建议将所有参与定义配置的方法移动到新的“other.gradle”文件中,那么我想这将非常困难,因为有这么多方法。此外,这些方法也参与了构建逻辑的定义。请提供建议,如果可以,请详细解释为什么我不应该使用configSlurper,为什么我应该使用您建议的方法,那就太好了。我只是担心你所走的路线会导致一个非常复杂的构建脚本,最终会被所有人憎恨。你能举一个简单的例子来说明你想做什么吗?为什么构建逻辑如此复杂?为什么构建中包含配置?@tim_yates构建逻辑如此复杂,因为它是一个内部企业项目,有3000行构建逻辑。问题是有40多个实验室使用这种构建逻辑通过Jenkins运行作业。因此,一个脚本正在处理所有这些实验室的设置配置。其中一些是Windows、Unix、Mac等,因为涉及多个作业、多个平台和多个测试域,这使得它更加复杂。现在,我们的build.gradle通过查看作业类型等动态设置了许多环境变量。请在此处添加链接答案的相关部分。