Ant构建脚本没有看到refid

时间:2012-10-26 14:10:22

标签: ant build reference

我有一个build.xml文件,其中包含一个定义一些refid值的common.xml文件。但是,我的任务无法看到refid值。我无法在网上找到解决方案,正在寻求帮助。

我在build.xml文件中调用genbeans目标。它在xmlbean taskdef上失败,并显示消息Reference my_classpath_jars not found。

的build.xml

----------------------------
[includes common.xml]


**my_classpath_jars fails to be seen at this point - defined in common.xml**

    <taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean">
        <classpath refid="my_classpath_jars"/>
    </taskdef>

    <!-- Generate the XMLBeans java code from our source XSD file(s) -->
    <target name="genbeans" description="Generate XML Bean files" depends="build_my_jar_cpath">
        <mkdir dir="${lib}"/>
        <xmlbean destfile="${lib}/${appname}Beans.jar" failonerror="true">
            <classpath refid="my_classpath_jars"/>
            <fileset dir="src/XSD Files" includes="*.xsd, *.wsdl"/>
        </xmlbean>
    </target>


common.xml
-----------------------------
  <target name="build_my_jar_cpath">
    <path id="my_classpath_jars">
      <fileset dir="${jardir}"  includes="**/*.jar" />
    </path>
    <pathconvert pathsep="${path.separator}" property="myjar.clpath" refid="my_classpath_jars"/>
  </target>  

1 个答案:

答案 0 :(得分:1)

如有疑问,请在调用目标时使用ant -d开关。你会看到大量的输出。将其保存到文件并通过它进行解析。

这样做,你会在输出中注意到的第一件事是它定义了taskdef 之前你定义了my_classpath_jarsmy_classpath_jars refid仅在您调用greenbeans目标时设置。在调用任何目标之前执行<taskdef>

my_classpath_jars的定义从目标greenbeans中取出,或将<taskdef>放在那里。