2017-01-23 3 views
1

私はgradleを初めて使っています。メディアファイルだけを含むフォルダのzipを生成するgradleスクリプトがあります。複数のファイルタイプ(拡張子AまたはBまたはCのファイル)に一致するパターンを定義するにはどうすればよいですか?複数のファイルタイプにマッチするアリスタイルのパターン

例えば、のフォルダは、次のファイルを持っているとしましょう:

1. bar.jpg 
2. src/bar.gif 
3. src/bar.js 
4. bbar.swf 

そして私がjpg、JPEG、GIF、およびSWFすることができ、すべてのメディアファイルを、つかむしたいです。

現在、ここで私は今それをやっている方法は次のとおりです。

def mediaFilesExtension= ["**/*.gif", "**/*.jpg", "**/*.jpeg", "**/*.svg", "**/*.png", "**/*.bmp", "**/*.swf"] 

    task zipImages(type:Zip) { 
     arhiveName "images.zip" 
     destinationDir = file("build/output") 
     from "source" 
     include mediaFilesExtension 
    } 

私は**\*を繰り返す必要がどのように好きではないと私は私ができることを一致し、より良いANT-スタイルパターンがあると確信しています私のincludeのために使用してください。

私は**/*.gif|jp?g|swfを試しましたが、動作しません。私はグーグルで試してみましたが、これに関する例は見つかりませんでした。助言がありますか?

答えて

1
def extensions = ["gif", "jpg", "jpeg", "svg", "png", "bmp", "swf"] as Set 
include { FileTreeElement el -> 
    int dotIndex = el.file.name.lastIndexOf('.') 
    if (dotIndex < 0) return false 
    String extension = el.file.name.substring(dotIndex + 1).toLowerCase() 
    return extensions.contains(extension) 
} 
に含ま
2

変更あなたがこの

include { 
    return it.name.endsWith(".jpg") || it.name.endsWith(".gif") // so on 
} 
関連する問題