2011-04-21 20 views
5

Desde la actualización de 1.6.5 a 1.7.1 Hormiga, mi resultado de generación comienza con:¿Qué significa la advertencia de Ant "Referencia * no se ha establecido en tiempo de ejecución ..." significa?

Warning: Reference project.classpath has not been set at runtime, but was found during 
build file parsing, attempting to resolve. Future versions of Ant may support 
referencing ids defined in non-executed targets. 
Warning: Reference project.test.classpath has not been set at runtime, but was found during 
build file parsing, attempting to resolve. Future versions of Ant may support 
referencing ids defined in non-executed targets. 

tengo problemas para entender esto y por qué se le da salida, y mucho menos tratando de deshacerse de él. ¡Cualquier ayuda sería apreciada!

EDIT:

de rutas de clases se define:

<path id="project.classpath"> 
     <pathelement path="./${build.dir}" /> 
     <path refid="libs.ant" /> 
     <fileset dir="${lib.dir}/dependencies/bar" includes="compile/*.jar" /> 
     <fileset dir="${lib.dir}/dependencies/foo" includes="provided/*.jar" /> 
</path> 

<!-- The classpath for compiling this projects' tests --> 
<path id="project.test.classpath"> 
     <path refid="project.classpath" /> 
     <fileset dir="${lib.dir}/dependencies/bar" includes="test/*.jar" /> 
     <fileset dir="${lib.dir}/dependencies/foo" includes="test/*.jar" /> 
</path> 

<property name="project.classpath" refid="project.classpath" /> 

Se hace referencia (por ejemplo, en) de esta manera:

<classpath refid="project.classpath"/> 
+0

¿Puede mostrar el código relevante que establece/utiliza project.classpath? Parece que podría tener dos referencias con el mismo nombre o sin usar. –

+0

Hola Jeanne, he editado la pregunta. Gracias. – vahidg

Respuesta

3

Tuve el mismo problema antes. Solo asegúrese de que el "project.classpath" esté definido al principio del archivo de compilación antes de que otros objetivos lo referencian. También su ruta "libs.ant" debe definirse antes de "project.classpath".

En Ant 1.8 esto realmente será un error en lugar de advertencia.

+0

¡Esto fue todo, gracias! – vahidg

0

Puede establecer la ruta de clases en el fichero de construcción de la siguiente manera, para deshacerse de esta advertencia. Ver referencia. http://ant.apache.org/manual/using.html

<project ... > 
    <path id="project.class.path"> 
    <pathelement location="lib/"/> 
    <pathelement path="${java.class.path}/"/> 
    <pathelement path="${additional.path}"/> 
    </path> 

    <target ... > 
    <rmic ...> 
     <classpath refid="project.class.path"/> 
    </rmic> 
    </target> 

    <target ... > 
    <javac ...> 
     <classpath refid="project.class.path"/> 
    </javac> 
    </target> 
</project> 
+0

Tengo el 'project.classpath' definido. ¿Quiere decir que debería referirme a cada objetivo? – vahidg

0

A menos que esto es un error tipográfico, parece que problemas. Realmente debe cambiar el nombre de uno para mayor claridad, incluso si no es la causa de la advertencia. Todavía suena como project.classpath se define en diferentes objetivos y se llaman en el orden incorrecto. Es posible que deba mostrar más código para obtener más ayuda.

<property name="project.classpath" refid="project.classpath" /> 
+0

¿Se refiere a 'nombre' y 'refid' que tienen el mismo valor aquí? La propiedad está hecha porque aparentemente jvmarg no admitía 'refid'. Si elimino esta línea por completo, el problema aún persiste. – vahidg

Cuestiones relacionadas