java - Ant 分词器 : Selecting an individual Token

标签 java ant build-process

我有以下 Ant 任务:

<loadfile property="proj.version" srcfile="build.py">
    <filterchain>
        <striplinecomments>
            <comment value="#"/>
        </striplinecomments>
        <linecontains>
            <contains value="Version" />
        </linecontains>
    </filterchain>
</loadfile>
<echo message="${proj.version}" />

输出是

 [echo] config ["Version"]          = "v1.0.10-r4.2"

然后我如何使用分词器只获取 v1.0.10-r4.2,相当于

| cut -d'"' -f4

最佳答案

你可以使用 containsregex filterchain 中的元素为 tokenfilter .

这应该过滤任何包含 "Version" 的行,并作为内容返回唯一捕获的组:'vx.y.zz....'

<支持> <包含正则表达式 pattern="^.?\"版本\".\"(v[^\"]+?)\"." 替换=“\1”/> 不起作用。
可能是 可以工作(对 parameter 属性使用单引号,允许在参数值内使用非转义双引号)

实际上是 OP John Oxley提供双引号 (\") 替换为 " 的工作解决方案:

<containsregex
        pattern="^.*?&quot;Version&quot;.*&quot;(v[^&quot;]+?)&quot;.*"
        replace="\1" />

关于java - Ant 分词器 : Selecting an individual Token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2385455/

相关文章:

java - 如何在非Fragment类中使用FragmentManager

java - Ant 执行: pausing build to accept user input required by executed program

iphone - 命令行编译 iPhone 应用程序

c# - 发布构建复制配置文件到另一个项目

java - 避免事件总线中的 ConcurrentModificationException

java - 如何设置从jsp中的单选按钮列表发送到servlet的值

java - 计算递归算法的时间复杂度。

java - 简单的 Java 应用程序可以与 Ant 配合使用,但不能与 Maven 配合使用。我该怎么做才能纠正这个问题?

ant - 如何使用 ant unjar 文件从 jar 到特定目录而不需要 jar 路径

java - 在 grails 应用程序中包含 jar list 的类路径