@Grape en scripts con varios archivos

Me gustaría usar @Grape en mi maravilloso programa, pero mi programa consta de varios archivos. Los ejemplos en el Página de Groovy Grape todos parecen asumir que su secuencia de comandos constará de un archivo. ¿Cómo puedo hacer esto? ¿Debo simplemente agregarlo a uno de los archivos y esperar que las importaciones funcionen desde los demás? Si es así, ¿es común colocar todas las llamadas @Grape en un archivo sin otro código? ¿Necesito agregar la llamada Grape a todos los archivos que importarán el paquete? ¿Necesito descargar el JAR y crear un archivo Gradle, sin el cual me estaba escapando en este momento?

preguntado el 16 de mayo de 11 a las 20:05

2 Respuestas

El motor de uva y la anotación @grab se crearon como parte del core groovy con scripts de un solo archivo en mente, para permitir que un fragmento de texto se convierta fácilmente en un programa completamente funcional.

para aplicaciones más grandes, gradle es una herramienta de construcción increíble con muchas características útiles.

pero sí, puede administrar todas las dependencias de la aplicación solo con grape.
No importa si anotas todos los archivos o uno solo, solo asegúrate de que se lea el archivo anotado @grab antes de intentar usar la clase externa.
Anotar la clase principal probablemente sea mejor, ya que fácilmente perderá la pista de las versiones de la biblioteca si tiene las anotaciones dispersas.

y si tu debemos considere gradle para cualquier aplicación con más de una docena de archivos o cualquier cosa que desee reutilizar en otro lugar como biblioteca.

contestado el 21 de mayo de 11 a las 06:05

En mi opinión, depende de cómo se vaya a ejecutar su programa ...

Si su programa se va a ejecutar como una colección de scripts independientes, entonces probablemente pegaría el @Grab requerido para cada script en la parte superior de cada uno de ellos.

Si su programa es más estándar programa de estilo con un solo punto de entrada, entonces optaría por usar una herramienta de compilación como Gradle (como usted dice), ya que obtiene muchas ganancias fáciles al usarla.

En primer lugar, facilita la definición de sus dependencias (y construye un solo frasco grande conteniendo todos ellos)

En segundo lugar, Gradle hace que sea realmente fácil comenzar a escribir pruebas, incluir complementos de cobertura de código o herramientas útiles como codenarc para sugerir posibles correcciones o mejoras a su código. Todos estos se vuelven invaluables no solo para mejorar su código (o saber que su código funciona), sino también al refactorizar su código, sabe que no ha roto nada que solía funcionar.

contestado el 17 de mayo de 11 a las 02:05

La pregunta era sobre lo que tengo que hacer, no sobre lo que es apropiado. Creo que ambas opciones funcionarán, pero ¿son las únicas opciones? ¿Puedo poner la llamada @Grape en un solo lugar sin usar Gradle? - dromodelo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.