Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 跨不同文件格式使用变量以实现生成自动化_Ant_Build Automation - Fatal编程技术网

Ant 跨不同文件格式使用变量以实现生成自动化

Ant 跨不同文件格式使用变量以实现生成自动化,ant,build-automation,Ant,Build Automation,我有一个大项目,它的构建自动化是由ant完成的。我需要一些想法或解决方案来更改所有文件中的一些常见变量 例如,公司名称、产品名称或年份包含在许多文件中:帮助文件(html)、许可证和配置文件(txt、xml)、源代码(java->class)等。是否有一种简单的方法可以为这些文件设置变量,并通过快照更改所有文件?也欢迎使用不同的工具 始终可以选择添加一些代码来打开文件、查找位置和更改字符串,但这似乎不是一个优雅的解决方案 多谢各位 蚂蚁和任务都支持一个元素。使用此选项,您可以对文件集中的文件应用

我有一个大项目,它的构建自动化是由ant完成的。我需要一些想法或解决方案来更改所有文件中的一些常见变量

例如,公司名称、产品名称或年份包含在许多文件中:帮助文件(html)、许可证和配置文件(txt、xml)、源代码(java->class)等。是否有一种简单的方法可以为这些文件设置变量,并通过快照更改所有文件?也欢迎使用不同的工具

始终可以选择添加一些代码来打开文件、查找位置和更改字符串,但这似乎不是一个优雅的解决方案

多谢各位

蚂蚁和任务都支持一个元素。使用此选项,您可以对文件集中的文件应用令牌的全局替换

简单的例子:

<target name="test">
    <mkdir dir="build"/>
    <copy todir="build">
        <fileset dir="src">
            <include name="*.txt"/>
        </fileset>
        <filterset>
            <filter token="COMPANY_NAME" value="Acme Inc."/>
        </filterset>
    </copy>
</target>
ant和tasks都支持一个元素。使用此选项,您可以对文件集中的文件应用令牌的全局替换

简单的例子:

<target name="test">
    <mkdir dir="build"/>
    <copy todir="build">
        <fileset dir="src">
            <include name="*.txt"/>
        </fileset>
        <filterset>
            <filter token="COMPANY_NAME" value="Acme Inc."/>
        </filterset>
    </copy>
</target>

我喜欢以下ANT解决方案:

使用任务查找并修复缺少许可证标头的Java文件:

<target name="replace_headers">
    <loadfile property="javaheader" srcFile="lib/standardheader.txt"/>
    <replaceregexp match="(/\*.*\*/.*)??^package " flags="sm"
        replace="${javaheader}${line.separator}package ">
        <fileset dir="src">
            <include name="**/*.java"/>
        </fileset>
    </replaceregexp>
</target>


简单,不需要Java源代码中的替换令牌。

我喜欢以下ANT解决方案:

使用任务查找并修复缺少许可证标头的Java文件:

<target name="replace_headers">
    <loadfile property="javaheader" srcFile="lib/standardheader.txt"/>
    <replaceregexp match="(/\*.*\*/.*)??^package " flags="sm"
        replace="${javaheader}${line.separator}package ">
        <fileset dir="src">
            <include name="**/*.java"/>
        </fileset>
    </replaceregexp>
</target>

简单,不需要Java源代码中的替换标记