我可以使用以下代码在gradle脚本中包含文件夹中的jar:
compile fileTree(dir: 'libs', include: '*.jar')// libs -> folder in root directory
我可以使用以下代码从gradle脚本中的文件夹中排除jar:
compile fileTree(dir: 'libs', include: '*.jar', exclude: 'antlr-2.7.7.jar')
我可以使用以下代码排除多个罐子:
compile fileTree(dir: 'libs', include: '*.jar', exclude: ['antlr-2.7.7.jar', 'antlr-runtime-3.3.jar'])
但我无法使用正则表达式排除jar,如下所示:
compile fileTree(dir: 'libs', include: '*.jar', exclude: 'antlr-.*.jar')
上述行不会给出任何错误,但不会排除两个antlr jar。是否有可能在gradle中实现这一目标。
提前谢谢。
答案 0 :(得分:0)
您可以使用传递给exclude
的闭包,例如:
compile fileTree(dir: 'libs', include: '*.jar', exclude: { e -> e.name.startsWith('ant') })
如果您拥有name
元素,则也可以使用正则表达式,而不是startsWith
。
答案 1 :(得分:0)
根据documentation,您可以使用稍微简洁的语法来使用更多显式文件集,类似于Ant文件集,并使用集合差异运算符。
allJars=fileTree(dir: 'libs', include: '*.jar')
antlrJars=fileTree(dir: 'libs', include: 'antlr-.*.jar')
jarsToUse=allJars-antlrJars