2017-02-16 42 views
0

我是Ant新手。我正在尝试读取两个属性文件,第一个是静态的,第二个是在构建过程中创建的。请看下面。阅读由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> 

回答

0

READ_PROPERTY_FILE_GENERATE_XML部中,将以下...

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

...与...

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

在上面的例子中,花括号已被周围添加prop_File_COIDs参考。

+0

感谢它的工作。 –