java ant - advertencia de la hormiga:"'includean truntime' no se estableció"




javac build.xml (7)

Como mencionó @Daniel Kutik, PreSetDef es una buena opción. Especialmente si uno está trabajando en un proyecto con muchos archivos build.xml que no puede editar, o prefiere no editar (por ejemplo, los de terceros).

Para usar presetdef , agregue estas líneas en su archivo build.xml nivel build.xml :

  <presetdef name="javac">
    <javac includeantruntime="false" />
  </presetdef>

Ahora, todas las tareas javac subsiguientes esencialmente heredarán includeantruntime="false" . Si sus proyectos realmente necesitan bibliotecas ant runtime, puede agregarlas explícitamente a sus archivos de compilación O establecer includeantruntime="true" . Este último también se librará de las advertencias.

Las tareas javac subsiguientes aún pueden cambiar esto explícitamente si lo desea, por ejemplo:

<javac destdir="out" includeantruntime="true">
  <src path="foo.java" />
  <src path="bar.java" />
</javac>

Recomiendo no usar ANT_OPTS . Funciona, pero derrota el propósito de la advertencia. La advertencia le dice a uno que la construcción de uno podría comportarse de manera diferente en otro sistema. El uso de ANT_OPTS hace que esto sea aún más probable porque ahora todos los sistemas necesitan usar ANT_OPTS de la misma manera. Además, ANT_OPTS se aplicará globalmente, ANT_OPTS advertencias de todos los proyectos.

Recibo la siguiente advertencia:

[javac] build.xml:9: warning: 'includeantruntime' was not set, 
defaulting to build.sysclasspath=last; set to false for repeatable builds

¿Qué significa esto?


Ant Runtime

Simplemente configura includeantruntime="false" :

<javac includeantruntime="false" ...>...</javac>

Si tiene que usar la tarea javac varias veces, puede considerar usar PreSetDef para definir su propia tarea javac que siempre establece includeantruntime="false" .

Detalles adicionales

De http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :

Eso es causado por una característica incorrecta introducida en Ant 1.8. Solo agrega un atributo de ese nombre a la tarea javac, configúralo en falso y olvida que alguna vez sucedió.

De http://ant.apache.org/manual/Tasks/javac.html :

Ya sea para incluir las bibliotecas de tiempo de ejecución de Ant en el classpath; el valor predeterminado es sí, a menos que se establezca build.sysclasspath. Por lo general, es mejor establecer esto en falso para que el comportamiento del script no sea sensible al entorno en el que se ejecuta.


La respuesta de Daniel funciona simplemente perfecta. Aquí hay un fragmento de muestra que agregué a mi build.xml:

<target name="compile">
    <mkdir dir="${classes.dir}"/>
    <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
                                                 <!--   ^^^^^^^^^^^^^^^^^^^^^^^^^  -->
        <classpath>
            <path id="application" location="${jar.dir}/${ant.project.name}.jar"/>
            <path id="junit" location="${lib.dir}/junit-4.9b2.jar"/>
        </classpath>
    </javac>
</target>

Me enfrenté a esto mismo, me registré en el programa y la función. hubo una actualización para instalar jdk1.8 que no es compatible con mi configuración anterior (jdk1.6.0) para ant en eclipse. Instalo esa actualización. En este momento, mi proyecto de hormigas es construir el éxito.

Pruébalo, espero que esto sea de ayuda.


Si te gusta trabajar desde la línea de comandos, la respuesta rápida se está ejecutando.

export ANT_OPTS=-Dbuild.sysclasspath=ignore

Y luego ejecute su secuencia de comandos de nuevo.


Use <property name="build.sysclasspath" value="last"/> en su archivo build.xml

Para más detalles, busque includeAntRuntime en Ant javac

Otros valores posibles se pueden encontrar here


Ya hice un googlear extenso antes de hacer esta pregunta, pero continuando con que encontré una solución here : este problema parece aparecer solo cuando se usa JDK 1.8, por lo que usar JDK 1.7 resuelve el problema. La siguiente línea debe agregarse a eclipse.ini:

-vm "path-to-jdk-1.7\bin\javaw.exe"




java ant build javac build-tools