我的问题是,我必须从xml文件读取复制作业的源路径,然后将从xml文件读取的该目录中的所有文件复制到另一个目录。
因为代码不仅仅是单词:
<xmltask source="${projectfile}">
<copy path="Project/RecentResultsInfo/ResultsDirectoryOfRecentLoadTest/text()" property="recentdir" attrValue="true"/>
</xmltask>
<copy todir="${targetdirectory}">
<fileset dir="${recentdir}"/>
</copy>
运行此目标器输出如下:C:developbuild.xml:44:警告:找不到资源文件"C:developC: program tooltest_90"来复制。
似乎在它不识别的文件集中,recentdir
包含一个完整的路径。从应用程序写入的xml在使用该路径读取的xml文件的路径前后各有一个换行符。因为前面有一个换行符,所以ant不能识别路径
有类似蚂蚁的装饰吗?
谁能帮我让蚂蚁接受这条路?
现在通过使用Ant-Contrib完成,但无论如何在这个项目中使用。
<xmltask source="${projectfile}">
<copy path="Project/RecentResultsInfo/ResultsDirectoryOfRecentLoadTest/text()" property="recentdirraw" attrValue="true"/>
</xmltask>
<!-- replace newlines and whitespace from read path -->
<propertyregex property="recentdir" input="${recentdirraw}" regexp="^[ tn]+|[ tn]+$" replace="" casesensitive="false" />
<copy todir="${targetdirectory}">
<fileset dir="${recentdir}"/>
</copy>
简单地用正则表达式修改属性,通过条带化空格和换行来修剪文本。
据我所知,xmltask中的copy元素提供了一个trim属性。
trims leading/trailing spaces when writing to properties
可以吗?