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?
Simplemente configure includeantruntime="false"
:
<javac includeantruntime="false" ...>...</javac>
Si tiene que usar la javac
-tarea varias veces, puede considerar usarla PreSetDef
para definir su propia javac
-tarea que siempre se establece includeantruntime="false"
.
Desde http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :
Eso es causado por una mala característica introducida en Ant 1.8. Simplemente agregue un atributo de ese nombre a la tarea javac, configúrelo en falso y olvide que alguna vez sucedió.
De http://ant.apache.org/manual/Tasks/javac.html :
Si se incluyen 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.
Como @Daniel Kutik mencionó,
presetdef
es una buena opción. Especialmente si uno está trabajando en un proyecto con muchosbuild.xml
archivos que uno no puede o prefiere no editar (por ejemplo, los de terceros).Para usar
presetdef
, agregue estas líneas en subuild.xml
archivo de nivel superior :Ahora todas las
javac
tareas posteriores esencialmente heredaránincludeantruntime="false"
. Si sus proyectos realmente necesitan bibliotecas de tiempo de ejecución ant, puede agregarlos explícitamente a sus archivos de compilación O bien configurarlosincludeantruntime="true"
. Este último también eliminará las advertencias.Las
javac
tareas posteriores aún pueden cambiar esto explícitamente si lo desea, por ejemplo:Recomiendo no usar
ANT_OPTS
. Funciona, pero anula 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 loANT_OPTS
hace aún más probable porque ahora todos los sistemas deben usarseANT_OPTS
de la misma manera. Además,ANT_OPTS
se aplicará a nivel mundial, eliminando advertencias involuntariamente en todos sus proyectosfuente
presetdef
truco similar funcione para tareas Ant no integradas? He intentado esto conscalac
, pero debido a que losbuild.xml
archivos inferiores tienen que definir manualmente lascalac
tarea, anulan lo que configuré en el nivel superior.Chet Hosey escribió una buena explicación aquí :
fuente
La respuesta de Daniel funciona perfectamente. Aquí hay un fragmento de muestra que agregué a mi build.xml:
fuente
Si quieres que trabaje desde la línea de comandos, la respuesta rápida se está ejecutando
Y luego ejecuta tu script de hormigas nuevamente.
fuente
set ANT_OPTS=-Xms40M -Xmx512M -Dbuild.sysclasspath=ignore
.Úselo
<property name="build.sysclasspath" value="last"/>
en su archivo build.xmlPara más detalles buscar
includeAntRuntime
en Ant javacOtros valores posibles se pueden encontrar aquí
fuente
Me enfrenté a esto mismo, me registré en el programa y la función. se instaló una actualización para jdk1.8 que no es compatible con mi configuración anterior (jdk1.6.0) para ant in eclipse. Instalo esa actualización. En este momento, mi proyecto de hormigas es construir el éxito.
Pruébalo, espero que esto sea útil.
fuente