2

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

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

构建.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>  
4

1 回答 1

1

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

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

要么my_classpath_jars从目标中取出定义,greenbeans要么把你的定义放在<taskdef>那里。

于 2012-10-26T18:34:20.173 回答