首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ant build file获取当前文件名?

如何使用ant build file获取当前文件名?
EN

Stack Overflow用户
提问于 2014-07-10 23:18:32
回答 1查看 733关注 0票数 0

我最近创建了一个ANT构建文件,以便使用xslt将.xml文件转换为.fo。并且ANT构建的性能与设计一致。但是,输入文件被硬编码到XSLT任务中。

如何动态更改输入文件名,而不必每次都编辑构建文件?以下是我的代码片段。

代码语言:javascript
复制
<target name="createFO"
    description="Transform using XSLT 1.0" depends="clean, copyimg, copysrc">
      <xslt basedir="${srcdir}" 
            destdir="${dstDir}"
            extension=".fo"
            style="${ss}/foobar.xsl"
            in="sample.xml"
            out="${dstDir}/new.fo"/>   

      <echo>The fo file has been created!</echo>
</target>

我没有提到我正在使用OxygenXML来处理我的ANT文件。抱歉的。

EN

回答 1

Stack Overflow用户

发布于 2014-07-10 23:56:24

您不需要inout属性。相反,您可以使用包含要转换的文件的<fileset>

<xslt>将从输入文件中剥离后缀,并应用extension属性中使用的后缀。

代码语言:javascript
复制
<target name="createFO"
    description="Transform using XSLT 1.0" depends="clean, copyimg, copysrc">
    <!-- Don't put "basedir" parameter. It comes from fileset! -->
      <xslt destdir="${dstDir}"
            extension=".fo"
            style="${ss}/foobar.xsl">
            <fileset dir="${xslt.dir}"/>
      </xslt>
      <echo>The fo file has been created!</echo>
</target>

您还可以使用mappers将输入文件的名称转换为输出文件名称。

当然,另一种方法是使用一个属性作为输入文件名,然后让某人将文件名传递给Ant脚本:

代码语言:javascript
复制
<target name="createFO"
    description="Transform using XSLT 1.0" depends="clean, copyimg, copysrc">
      <fail message="You must pass in the parameter &auot;-Dxml.file=...&quot;">
           <condition>
               <not>
                   <available file="${xml.file}">
           </condition>
      </fail>

      <xslt basedir="${srcdir}" 
            destdir="${dstDir}"
            extension=".fo"
            style="${ss}/foobar.xsl"
            in="${xml.file}"
            out="${dstDir}/new.fo"/>   

      <echo>The fo file has been created!</echo>
</target>

现在,要运行这段代码,您需要执行以下操作:

代码语言:javascript
复制
$ ant -Dxml.file=sample.xml createFO
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24680329

复制
相关文章

相似问题

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