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 - Fatal编程技术网

Ant 用动态内容替换文件中的正则表达式匹配项

Ant 用动态内容替换文件中的正则表达式匹配项,ant,Ant,我有一个类似以下内容的文件: // run script Y #include ./relativePath/to/script.y // run script Z #include ./relativePath/to/script/z.z // etc. 我想让ANT做的是,获取这个文件,并用#include'directive'指向的文件的实际内容替换所有include,相对于文件本身。我正在搜索replaceregexp,但没有得到多少乐趣 有人能告诉我往哪个方向看吗 TIA您的语法

我有一个类似以下内容的文件:

// run script Y
#include ./relativePath/to/script.y

// run script Z
#include ./relativePath/to/script/z.z

// etc.
我想让ANT做的是,获取这个文件,并用
#include
'directive'指向的文件的实际内容替换所有include,相对于文件本身。我正在搜索
replaceregexp
,但没有得到多少乐趣

有人能告诉我往哪个方向看吗


TIA

您的语法非常接近C预处理器。将文件名放在引号中是否是一种解决方案,例如:

#include "./relativePath/to/script.y"
要在cpp中为您提供文件,请执行以下操作:

cpp -o output inputfile 

我没有找到一个完美的方法。然而,我确实提出了一个符合我需要的解决方案

我没有从单个源文件开始,试图找出要替换的文件,而是循环遍历我知道可能包含的文件,用它们的文件内容替换它们的“包含”实例

比如:

<target name="fubar">
    ...

    <foreach target="injectFile" inheritall="true" param="include.file">
        <fileset dir="${src.dir}" casesensitive="yes" />
    </foreach>
</target>

<target name="injectFile">
    ... code that works out relative path of include file here ...

    <loadfile property="include.file.content" srcFile="${include.file}" />

    <replace file  = "${build.file}"
             token = "#include ${include.file.relative.path}"
             value = "${include.file.content}" />
</target>

...
... 在此计算包含文件的相对路径的代码。。。

不幸的是,C没有什么问题;)。只想创建一个文件,该文件可用于创建一组其他文件的单个串联输出,并具有指定的顺序。谢谢你的建议。利用ant contrib。