Me gustaría utilizar JDK 1.6 para una rama de un proyecto, mientras que otros siguen usando JDK 1.5. Los desarrolladores quieren cambiar ocasionalmente entre ellos.¿Puedo especificar la ruta JDK para compilar dentro de Ant build.xml?
Entonces, ¿cuál es la mejor forma de para decir Ant's javac que JDK usar? Mejor, me refiero a un robusto, transparente, de bajo mantenimiento, versionado junto con la fuente (Ant y JDK ciertamente no lo son, pero viven en lugares estándar).
La -en lugar de manera obvia mejor- que supongo sería exterior de Ant: seguir cambiando la variable de entorno JAVA_HOME. Sin embargo, esto requeriría que los desarrolladores cambiaran manualmente (otra cosa para recordar: propenso a errores), un cambio de todos los servidores de muchas versiones (más trabajo para mí ahora).
Buscando un poco sencilla javac atributo por ejemplo jdk-path
, me di cuenta de varias lugar (gracias a la lectura para arriba en la red y en el SO):
compiler
- justo lo suficiente, pero docs dice "moderna: .. javac1.5 y javac1.6 .. como alias ".. Para mí esto sugiere que no hará ninguna diferencia, ¿o sí?source
- parece solo acerca de la versión de JLS (aunque no% 100 desprende de los documentos relacionados anteriormente)target
- versión de código de bytesbootclasspath
- algunos tan respuestas mencionar esto, pero bastante poco claras y parece hackerexecutable
- ruta a javac, pero no a libs .. - parece la coincidencia más cercana, especificando implícitamente la ruta JDK? ACTUALIZACIÓN: confirmado por JB Nizetfork
- parece que voy a necesitar cierto aquí (de lo contrario, simplemente ignorará lo anterior sin error?). ACTUALIZACIÓN: ¿Cualquier implicancia de rendimiento vs. defecto? (Supongo que los tiempos de inicio de JVM son mejores en estos días, pero todavía)
Por lo tanto, parece que ninguno de estos ayudan en sí mismo .. es cualquier combinación de éstas equivale a establecer JAVA_HOME antes de ejecutar Ant?
que tienen algunos hacks en mente (por ejemplo, envolviendo ejecutable de hormigas en cada plataforma sólo para establecer que env var - bastante triste), pero realmente espero que me haya perdido algo :)
gracias, buen punto .. Aunque sabía ruta del JDK se infiere cuando se ejecuta independiente javac, documentos Ant están lejos de ser claro en este respeto ... ¿puedes confirmar que la combinación del ejecutable + tenedor es "equivalente a establecer JAVA_HOME antes de ejecutar Ant?" (actualice la respuesta por favor) +1 – inger
¿fork = es realmente caro en Java6? – inger