【问题标题】:Read Ant properties file generated by Apache FOP读取 Apache FOP 生成的 Ant 属性文件
【发布时间】:2017-02-16 23:36:11
【问题描述】:

我是 Ant 新手。我正在尝试读取两个属性文件,第一个是静态的,第二个是在构建过程中创建的。请看下文。

我在顶部读到了一个静态属性文件:./cfg/build.properties

然后再次读取目标标签内的另一个属性文件。流程如下所述。

有两个目标将按顺序执行。

首先,我尝试在目标 GENERATE_PROPERTYFILE 中使用 FOP 创建一个属性文件。

然后在第二个目标 READ_PROPERTY_FILE_GENERATE_XML 上,我正在读取在第一步中创建的属性文件。

但问题是,它没有从第二个属性文件中为 ${IssueObjects.ID} 选择一个值。

下面是脚本截图。

<project name="fop4ant" default="run" basedir=".">

<property file="./cfg/build.properties" prefix="System"/>
<property environment="env"/>

<tstamp>
        <format property="param_TouchTimeStamp" pattern="yyyyMMddHHmmssSS"/>
</tstamp>
<property name="param_TouchTimeStamp" value=""  />

<property name="prop_File_XSL_FetchProbNSolObjects" value="${System.prop_Dir_stylesheet}/${System.prop_File_Stylesheet_FetchProbSol_CNReport}"  />

<property name="prop_File_XML" value="${System.prop_Dir_temp}/Object-${param_TouchTimeStamp}.xml"  />
<property name="prop_File_XML_Prob" value="${System.prop_Dir_temp}/Prob-${param_TouchTimeStamp}.xml"  />
<property name="prop_File_COIDs" value="${System.prop_Dir_temp}/probCO-${param_TouchTimeStamp}.properties"  />

<property name="prop_Dir_FOP" value="${env.FOP_HOME}"/>
<property name="prop_Dir_GS" value="${env.GS_HOME}"/>

<taskdef name="fop" 
         classname="org.apache.fop.tools.anttasks.Fop">
  <classpath>
    <fileset dir="${prop_Dir_FOP}/lib">
      <include name="*.jar"/>
    </fileset>
    <fileset dir="${prop_Dir_FOP}/build">
      <include name="fop.jar"/>
    </fileset>
  </classpath>
</taskdef>

    <!-- @SECTION_BEGIN :: READ_PROPERTY_FILE_GENERATE_XML -->
<target name="generate-problem-item-productview">
    <echo message="prop_XML_FILE_PROB :: ${prop_File_XML_Prob}" level="info" />
    <!--Reading dynamically created property file-->
    <property file="$prop_File_COIDs" prefix="IssueObjects"/>

    <exec executable="export.exe">
        <arg line="-xml_file=${prop_File_XML_Prob} -transfermode=${IssueObjects.ID}">
     </exec>
</target>
<!-- @SECTION_END :: READ_PROPERTY_FILE_GENERATE_XML  -->

<!-- @SECTION_BEGIN :: GENERATE_PROPERTYFILE-->
<target name="fetch-prob-sol-items">
    <echo message="prop_File_XML :: ${prop_File_XML}" level="info" />
    <echo message="prop_File_XSL_FetchProbNSolObjects :: ${prop_File_XSL_FetchProbNSolObjects}" level="info" />
    <echo message="prop_File_COIDs :: ${prop_File_COIDs}" level="info" />

    <echo message="prop_Dir_FOP :: ${prop_Dir_FOP}/fop.bat" level="info" />

    <exec executable="${prop_Dir_FOP}/fop.bat">
        <arg value="-xml"/>
        <arg value="${prop_File_XML}"/>
        <arg value="-xsl"/>
        <arg value="${prop_File_XSL_FetchProbNSolObjects}"/>
        <arg value="-foout"/>
        <arg value="${prop_File_COIDs}"/>
      </exec>
</target>
<!-- @SECTION_END :: GENERATE_PROPERTYFILE -->

<target name="run" depends="">
    <echo message="start :: run" level="info" />
    <antcall target="fetch-prob-sol-items" />
    <antcall target="generate-problem-item-productview" />
    <echo message="end :: run" level="info" />
</target>
</project>

【问题讨论】:

    标签: ant apache-fop


    【解决方案1】:

    READ_PROPERTY_FILE_GENERATE_XML 部分,替换以下内容...

    <property file="$prop_File_COIDs" prefix="IssueObjects"/>
    

    ...与...

    <property file="${prop_File_COIDs}" prefix="IssueObjects"/>
    

    在上面的示例中,在 prop_File_COIDs 引用周围添加了花括号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-08
      • 2022-11-25
      • 2017-07-20
      • 2015-11-25
      • 2011-10-22
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      相关资源
      最近更新 更多