Me gustaría usar @Grape en mi programa groovy, pero mi programa consta de varios archivos. Los ejemplos en el Groovy Grape page parecen suponer 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? ¿Debo agregar la llamada Grape a todos los archivos que importarán el paquete? ¿Debo descargar el archivo JAR y crear un archivo Gradle, del que ya me estaba escapando en este momento?@Grape en scripts con varios archivos
Respuesta
el motor de uva y la anotación @grab se crearon como parte de core groovy con scripts de archivo único en mente, para permitir que un trozo de texto se convierta fácilmente en un programa completamente funcional.
para aplicaciones más grandes, gradle es una increíble herramienta de compilación con muchas características útiles.
pero sí, puede administrar todas las dependencias de aplicaciones solo con grape.
ya sea que anote cada archivo o solo uno no importa, solo asegúrese de que el archivo anotado @grab se lea antes de intentar usar la clase externa.
anotar la clase principal es probablemente mejor, ya que perderá fácilmente la pista de las versiones de la biblioteca si tiene las anotaciones dispersas.
y sí, usted considere 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.
En mi opinión, todo depende de cómo su programa se va a ejecutar ...
Si el programa se va a ejecutar como una colección de secuencias de comandos independientes, entonces probablemente me quedo la @Grab
requerida para cada secuencia de comandos en la parte superior de cada uno de ellos.
Si su programa es más de estándar programa de estilo con un único punto de entrada, entonces usaría una herramienta de compilación como Gradle (como usted dice), ya que obtiene muchas ganancias fáciles por usándolo
En primer lugar, hace que sea fácil de definir sus dependencias (y build a single large jar que contienen todos ellos)
En segundo lugar, Gradle hace que sea muy fácil para empezar a escribir pruebas, incluye plugins de cobertura de código, o herramientas útiles like codenarc sugerir posibles arreglos o mejoras a su código. Todo esto tiene un valor incalculable no solo para mejorar su código (o saber que su código funciona), sino también cuando refactoriza su código, sabe que no ha roto nada de lo que solía funcionar.
- 1. JSLint con varios archivos
- 2. grape no funciona en Eclipse
- 3. PreferenceActivity con preferencia varios archivos
- 4. groovy grape verbose
- 5. JavaScript en varios archivos
- 6. ¿Cómo administrar las dependencias entre scripts en el módulo Powershell de varios archivos?
- 7. Poniendo a Groovy's Grape Going!
- 8. Plantillas distribuidas en varios archivos
- 9. Split views.py en varios archivos
- 10. Eliminación de varios archivos con el comodín
- 11. "Con" instrucción en Python con varios archivos para manejar
- 12. Una clase con varios archivos de implementación
- 13. Carga de varios archivos simultáneamente con Flex
- 14. Usando XSD2CODE con varios archivos de esquema
- 15. Reproducir varios archivos de audio con AVPlayer
- 16. marco de botella con varios archivos
- 17. ¿Varios archivos de registro con Winston?
- 18. cargar varios archivos con un clip
- 19. archivo gzip con varios archivos dentro de
- 20. ¿Cómo se cargan varios archivos con AFNetworking?
- 21. Cómo subir varios archivos con AsyncHttpClient Android
- 22. models.py dividirse en varios archivos
- 23. Varios archivos adjuntos en C#
- 24. Rellenar varios archivos PDF
- 25. copiar varios archivos en python
- 26. ¿Distribuir mis scripts de Python como archivos JAR con Jython?
- 27. Make groovy script toma un jar del sistema de archivos como grape
- 28. ¿Entradas de varios archivos?
- 29. Fusionando varios archivos javascript
- 30. unir varios archivos
La pregunta era sobre lo que tengo que hacer, no lo que es apropiado. Creo que ambas opciones funcionarán, pero ¿son las únicas? ¿Puedo poner la llamada @Grape en un solo lugar sin usar Gradle? – dromodel