首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在复制文件时过滤gradle?如果令牌以"Tel-“开头,以"-Tel”结尾,则将令牌替换为V2

如何在复制文件时过滤gradle?如果令牌以"Tel-“开头,以"-Tel”结尾,则将令牌替换为V2
EN

Stack Overflow用户
提问于 2016-07-29 20:19:18
回答 1查看 429关注 0票数 0

Gradle脚本

代码语言:javascript
复制
copy {
    from 'src/com/comcast/telescope/Telescope.java'
    into 'dist/com/comcast/telescope'
include '**/*.java'
 }

Ant脚本

代码语言:javascript
复制
     <copy file="${src.dir}/com/comcast/telescope/Telescope.java" toFile="${dist.dir}/com/comcast/telescope/Telescope.java">
        <filterset begintoken="Tel-" endtoken="-Tel">
            <filter token="IntVer" value="${Interface-Version}" />
        </filterset>

我得到了复制文件的最上面部分,但是在复制文件时,我不得不对文件进行过滤。有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2016-07-29 20:57:42

您需要在您的filter中添加对CopySpec的调用。

根据原始Ant脚本,您需要:

代码语言:javascript
复制
import org.apache.tools.ant.filters.ReplaceTokens

copy {
    from 'src/com/comcast/telescope/Telescope.java'
    into 'dist/com/comcast/telescope'
    include '**/*.java'
    filter(ReplaceTokens, beginToken:'Tel-', endToken:'-Tel', tokens: [IntVer: interfaceVersion])
 }

这使用ReplaceTokensTelescope.java中的文字文本Tel-IntVer-Tel替换为从src/com/comcast/telescope复制到dist/com/comcast/telescopeinterfaceVersion值。

请注意,在我的示例中,您需要在某个地方设置interfaceVersion属性,比如在gradle.properties中或在区块。中,最后,我认为include是不必要的,因为只有一个文件正在被复制,从而产生:

代码语言:javascript
复制
import org.apache.tools.ant.filters.ReplaceTokens

copy {
    from 'src/com/comcast/telescope/Telescope.java'
    into 'dist/com/comcast/telescope'
    filter(ReplaceTokens, beginToken:'Tel-', endToken:'-Tel', tokens: [IntVer: interfaceVersion])
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38666868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档