我有一个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>
答案 0 :(得分:1)
如有疑问,请在调用目标时使用ant -d
开关。你会看到大量的输出。将其保存到文件并通过它进行解析。
这样做,你会在输出中注意到的第一件事是它定义了taskdef
之前你定义了my_classpath_jars
。 my_classpath_jars
refid仅在您调用greenbeans
目标时设置。在调用任何目标之前执行<taskdef>
。
将my_classpath_jars
的定义从目标greenbeans
中取出,或将<taskdef>
放在那里。