2

いくつかの refid 値を定義する common.xml ファイルを含む build.xml ファイルがあります。ただし、私のタスクは refid 値を認識できません。Web 上で解決策を見つけることができず、助けを求めています。

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>  
4

1 に答える 1

1

疑わしい場合はant -d、ターゲットを呼び出すときにスイッチを使用してください。大量の出力が表示されます。ファイルに保存し、それを解析します。

それを行うと、出力で最初に気付くのは、 your を定義するtaskdef前にyourを定義していることですmy_classpath_jars。そのrefid は、そのターゲットmy_classpath_jarsを呼び出したときにのみ設定されます。greenbeansYour<taskdef>は、ターゲットが呼び出される前に実行されます。

の定義をmy_classpath_jarstarget から取り出すか、そこにgreenbeans入れます<taskdef>

于 2012-10-26T18:34:20.173 に答える