读取 Apache FOP 生成的 Ant 属性文件
Read Ant properties file generated by Apache FOP
我是 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>
在 READ_PROPERTY_FILE_GENERATE_XML
部分中,替换以下...
<property file="$prop_File_COIDs" prefix="IssueObjects"/>
...与...
<property file="${prop_File_COIDs}" prefix="IssueObjects"/>
在上面的示例中,在 prop_File_COIDs
引用周围添加了大括号。
我是 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>
在 READ_PROPERTY_FILE_GENERATE_XML
部分中,替换以下...
<property file="$prop_File_COIDs" prefix="IssueObjects"/>
...与...
<property file="${prop_File_COIDs}" prefix="IssueObjects"/>
在上面的示例中,在 prop_File_COIDs
引用周围添加了大括号。