Xml Ant错误:找不到引用${lib.classpath}

Xml Ant错误:找不到引用${lib.classpath},xml,ant,Xml,Ant,我尝试使用ant构建项目时出错。以下是生成文件: <?xml version="1.0" encoding="UTF-8"?> <project name="GPClient" default="dist" basedir="."> <description> simple example build file </description> <!-- set global properties for th

我尝试使用ant构建项目时出错。以下是生成文件:

<?xml version="1.0" encoding="UTF-8"?>
<project name="GPClient" default="dist" basedir=".">
    <description>
        simple example build file
    </description>
  <!-- set global properties for this build -->
  <dirname property="client.basedir" file="${ant.file.GPClient}"/>
  <property name="client.src" location="${client.basedir}/src"/>
  <property name="client.build" location="${client.basedir}/build"/>
  <property name="client.dist"  location="${client.basedir}/dist"/>
  <property name="client.done"  location="${client.basedir}/done"/>
  <property name="client.app"  location="${client.basedir}/app"/>
  <property name="client.webinf_classes" location="${client.basedir}/WEB-INF/classes"/>
  <property name="server.dir" location="${client.basedir}/../GrahamsProjServer"/>
  <property name="deploy.location"  location="${client.basedir}/../../jboss-as-7.1.1.Final/standalone/deployments"/>


    <path id="lib.classpath">
      <fileset dir="${client.basedir}">
          <include name="/lib/*.jar"/>
          <!-- <exclude name="jboss-servlet-api_3.0_spec-1.0.0.Final.jar" /> -->
      </fileset>
      <!-- <fileset dir="${client.basedir}/properties">
         <include name="*.properties"/>
     </fileset>
     <fileset dir="${server.dir}/dist">
         <include name="*.jar"/>
     </fileset>
     <fileset dir="${client.basedir}/WEB-INF/lib">
         <include name="*.jar"/>
     </fileset> -->
    </path>

    <path id="server.classpath">
      <fileset dir="${server.dir}/dist">
          <include name="*.jar"/>
      </fileset>
    </path>

    <path id="mf.classpath">
        <path refid="${lib.classpath}"/>
        <path refid="${server.classpath}"/>
    </path>

    <path id="war.classpath">
      <fileset dir="${client.basedir}/WEB-INF/lib">
          <include name="*.jar"/>
      </fileset>
    </path>

  <target name="client.init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${client.build}"/>
    <mkdir dir="${client.dist}"/>
    <mkdir dir="${client.done}"/>
    <mkdir dir="${client.app}"/>
    <mkdir dir="${client.webinf_classes}"/>
    <mkdir dir="${client.webinf_classes}/grahamsprojclient/servlet"/>
  </target>

  <target name="client.compile" depends="client.init"
       description="compile the source " >

    <!-- Compile the java code from ${src} into ${dist} -->
    <javac srcdir="${client.src}" destdir="${client.dist}" >
        <classpath>
            <path refid="mf.classpath"/>
        </classpath>
    </javac>
  </target>

  <target name="client.package" depends="client.compile" description="create the jar">  
        <!-- <manifestclasspath property="manifest.path" jarfile="${dist}/GrahamsProjClient.jar">
           <classpath refid="mf.classpath"/>
       </manifestclasspath> -->

        <jar destfile="${client.app}/GrahamsProjClient.jar" basedir="${client.dist}" >
            <fileset dir="${client.basedir}/properties">
                <include name="*.properties"/>
            </fileset>
            <fileset dir="${client.basedir}">
                <include name="lib/*.jar"/>
                <!-- <exclude name="lib/jboss-servlet-api_3.0_spec-1.0.0.Final.jar" />-->
            </fileset>
            <manifest>
                <attribute name="Class-Path" value="${mf.classpath}"/>
                <attribute name="Main-Class" value="grahamsprojclient.main.Start"/>
            </manifest>
        </jar>
  </target>

  <!--<target name="deploy" depends="package"
       description="generate the distribution" >
   <ear destfile="${deploy.location}/GrahamsProjServer.ear" appxml="${client.basedir}/META-INF/application.xml" >
       <metainf dir="${client.basedir}/META-INF"/>
       <fileset dir="${dist}" includes="*.jar"/>
   </ear>
 </target> -->

  <target name="client.clean"
       description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${client.build}"/>
    <delete dir="${client.dist}"/>
    <delete dir="${client.app}"/>
    <delete dir="${client.done}"/>
    <delete dir="${client.webinf_classes}"/>
    <echo message="Deleting files in ${deploy.location}"/>
    <delete>
        <fileset dir="${deploy.location}" >
            <exclude name="*.txt" />
        </fileset>
    </delete>
  </target>

  <target name="client.compile-war-lib">
      <mkdir dir="WEB-INF/classes"/>
      <javac srcdir="${client.src}" destdir="WEB-INF/classes" debug="true" includeAntRuntime="false">
          <classpath refid="war.class.path"/>
          <include name="**/*.java"/>
      </javac>
  </target>

  <target name="client.compile-war" depends="client.init" description="compile the source " >
    <!-- Compile the java code from ${src} into ${dist} -->
    <javac srcdir="${client.basedir}/src/grahamsprojclient/servlet"
          destdir="${client.basedir}/WEB-INF/classes/grahamsprojclient/servlet" >
        <classpath>
            <path refid="war.class.path"/>
        </classpath>
    </javac>
  </target>


  <target name="client.build_war" depends="client.package, client.compile-war" description="build war" >  
      <war destfile="${client.done}/GrahamsProjClient.war" webxml="WEB-INF/web.xml">
        <metainf dir="${client.basedir}/META-INF" includes="context.xml" />
        <lib dir="${client.basedir}/WEB-INF/lib">
            <exclude name="/CopyLibs"/>
            <exclude name="*.ex" />
        </lib>
        <classes dir="${client.basedir}/WEB-INF/classes/grahamsprojclient/servlet" >
            <exclude name="*.java" />
        </classes>
        <fileset dir="${client.basedir}" >
            <include name="GrahamsProjClient-webstart.jnlp"/>
            <include name="app/GrahamsProjClient.jar"/>
            <include name="GrahamsProjStartAppPage.html"/>
            <!-- <include name="lib/*.jar"/>
           <include name="lib/jboss-servlet-api_3.0_spec-1.0.0.Final.jar"/> -->
        </fileset>
      </war>
  </target>

  <target name="client.deploy_war" depends="client.build_war" description="deploy war">
        <copy file="${client.done}/GrahamsProjClient.war" todir="${deploy.location}" />
  </target>

</project>

是什么导致了这种情况?我看不出我的路径设置有任何问题。

我认为您在第67行使用了${lib.classpath},但您没有定义它

我认为您在第67行使用了${lib.classpath},但没有定义它

您使用引用ID
lib.classpath
server.classpath
定义了路径,但是当您引用它们时:

<path id="mf.classpath">
    <path refid="${lib.classpath}"/>
    <path refid="${server.classpath}"/>
</path>

您将它们视为尚未定义的属性。你可能是说:

<path id="mf.classpath">
    <path refid="lib.classpath"/>
    <path refid="server.classpath"/>
</path>

您使用引用ID
lib.classpath
server.classpath
定义了路径,但是当您引用它们时:

<path id="mf.classpath">
    <path refid="${lib.classpath}"/>
    <path refid="${server.classpath}"/>
</path>

您将它们视为尚未定义的属性。你可能是说:

<path id="mf.classpath">
    <path refid="lib.classpath"/>
    <path refid="server.classpath"/>
</path>