Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
使用ant builder压缩文件并排除在groovy中无法正常工作的情况_Groovy - Fatal编程技术网

使用ant builder压缩文件并排除在groovy中无法正常工作的情况

使用ant builder压缩文件并排除在groovy中无法正常工作的情况,groovy,Groovy,我试图通过标记目录中的文件名来压缩文件。带有该标记的文件应压缩到相应的文件夹中。 这段代码正在这样做,但它并没有完全过滤。在abc文件夹中,应仅显示带有abc的文件,但也应包含带有def的文件,这是不需要的。其他文件夹也是如此。但是,如果存在带有a的文件,则会正确进行筛选,并根据除abc之外的所有令牌的excludestring正确完成压缩。请在下面查找代码。 有什么建议吗 tokenList.each{token -> for(i in tokenList) { exclude

我试图通过标记目录中的文件名来压缩文件。带有该标记的文件应压缩到相应的文件夹中。 这段代码正在这样做,但它并没有完全过滤。在abc文件夹中,应仅显示带有abc的文件,但也应包含带有def的文件,这是不需要的。其他文件夹也是如此。但是,如果存在带有a的文件,则会正确进行筛选,并根据除abc之外的所有令牌的excludestring正确完成压缩。请在下面查找代码。 有什么建议吗

tokenList.each{token ->
for(i in tokenList) 
{

   excludeString = tokenList - token  
   println "excludeString for " +token + "is:" +excludeString

   println "Creating zip folder for " +token
   ant.zip( basedir: outputDir, destfile: token.substring(1,token.length()-1) +".zip", excludes: excludeString, update:true)

   break
   }

  }



output
TokenList: [*abc*, *def*, *ghi*, *jkl*]
excludeString for *abc*is:[*def*, *ghi*, *jkl*]
Creating zip folder for *abc*
excludeString for *def*is:[*abc*, *ghi*, *jkl*]
Creating zip folder for *def*
excludeString for *ghi*is:[*abc*, *def*, *jkl*]
Creating zip folder for *ghi*
excludeString for *jkl*is:[*abc*, *def*, *ghi*]
Creating zip folder for *jkl*

请清理你的代码,它没有正确的缩进,代码中的for循环在我看来没有任何作用,
idx
没有使用等等。stackoverflow上的人们花了很多时间在问题的答案上,确保你的问题格式正确,并且在发布时经过深思熟虑是一件好事。此外,我们还可以从您的示例中推断出
tokenList
的值,但为了清楚起见,最好在开始时有一个明确的赋值
def tokenList=[…]
,这样我们就可以重现您的问题。如果您注意到以上内容,我将很乐意提供答案。@Matiasbjarand感谢您花时间:)是的,我已经明确定义了令牌列表,但没有包含在这里。最初,我使用idx使用其他逻辑来实现解决方案,但现在它不是必需的,感谢您指出这一点(因为我忘记在我的原始代码中删除)。现在通过使用“includes”而不是“excludes”来解决问题。我要求您也提供您的答案:)