因此,这可行:

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
}

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

最佳答案

我在不使用copySpecs Gradle时遇到了类似的问题。在尝试了多种变体之后,它仅在将copy闭包添加到copySpec时才对我有用。

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

task mycopy (type: Copy) {
    with cs
}

希望这可以帮助。

关于gradle - 如何使用包含文件的copySpec使用Gradle构建War文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30250923/

10-10 11:49