如何使用包含filesMatching的copySpec使用Gradle构建war文件

时间:2015-05-15 03:11:10

标签: gradle

所以,这有效:

war {
    filesMatching('**/index.jsp') {
        filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: [
          'version' : version,
        ])
    }
}

但这不是:

def webappFilter = project.copySpec {
    filesMatching('**/index.jsp') {
        filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: [
          'version' : version,
        ])
    }
}

war {
    with webappFilter
}

显然,我做错了,但我无法理解我错过了什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

我对copySpecs Gradle有类似的问题,只是没有使用它们。在尝试了许多变体之后,只有在向copySpec添加副本时才能使用它。

def cs = copySpec {
    copy {
        from("readme.txt")
        into("somefolder")
        filter{String line -> line.replaceAll('a','b')}
    }
}   

task mycopy (type: Copy) {
    with cs 
} 

希望这有帮助。