Soy relativamente nuevo en Clojure y Java. ¿Por qué la carpeta lib de un proyecto lein no se agrega al repositorio git de un proyecto lein? Creo que sería conveniente tener todos los frascos necesarios para el desarrollo distribuido.Para un proyecto lein, ¿por qué es lib/in .gitignore?
Respuesta
En un proyecto de Leiningen, el archivo project.clj dicta las dependencias del proyecto, y cuando ejecuta 'lein deps', todas las dependencias enumeradas en el archivo project.clj se descargan en lib /. Por lo tanto, no es necesario verificar los archivos jar porque project.clj en combinación con el comando 'lein deps' es todo lo que necesita para que otra persona pueda reproducir la misma lib/que usted tiene. Controlar todos los frascos es redundante y una pérdida de espacio.
Además, como señala mblinn, es mejor extraer los archivos de los repositorios de artefactos diseñados con el fin de distribuir y actualizar dependencias, en lugar de cambiar y comprometer constantemente nuevos archivos siempre que se actualice una dependencia. Esto es especialmente cierto cuando su proyecto depende de los recipientes de instantáneas, que están sujetos a cambios frecuentes; si registró los tarros, tendrá que registrar un nuevo tarro cada vez que se actualice la instantánea, pero si confía en 'lein deps' para extraer los tarros de los repositorios de artefactos, entonces se mantendrá actualizado sin esfuerzo. Pero incluso para las jarras que no son instantáneas, actualizar una dependencia cambiando su versión en project.clj y luego ejecutar 'lein deps' es mucho más fácil y más rápido que colocar manualmente el jar en lib/y registrarlo.
I Espero que la explicación anterior sea accesible. Si no, y no comprende algunos de los conceptos discutidos, como repositorios de artefactos o dependencias, hágamelo saber y le explicaré.
Bueno, el objetivo de Leiningen o de cualquier otra herramienta de administración de dependencias es que administre sus dependencias por usted. Esas dependencias se encuentran en repositorios de artefactos separados que se adaptan mejor a las versiones públicas de artefactos de software que los sistemas de control de origen. Leiningen se aprovecha del sistema de repositorio de Maven (una biblioteca de compilación/herramienta de administración de dependencias de Java); sin embargo, también hay repos de artefactos específicos de Clojure.
De todos modos, el punto es que usted declara las dependencias que su proyecto tiene en su project.clj, y verifica ese archivo project.clj en el control de código fuente. Otros desarrolladores lo comprueban y ejecutan 'lein deps' para eliminar esas dependencias, y ¡voilá!
Una de las mayores ventajas de la administración automática de dependencias es que sus bibliotecas no están almacenadas en su VCS, junto con todas sus sutiles implicaciones cuando se trata de versiones.
Como Leiningen internamente utiliza resolución de artefactos experto, es necesario especificar manualmente qué repositorios artefacto en caso de que la dependencia requerida no se encuentra en el repositorio por defecto, es decir maven central repository, clojure releases y clojars
P. ej en el caso de Roma v1.0 que aún no se implementa en experta en centrales pero se encuentra en java.net project kenai repo que tendrá que teclear su project.clj algo en este sentido:
...
:dependencies [[rome/rome "1.0"] ...]
:repositories {"kenai" "http://download.java.net/maven/2/"}
...
Git es sorprendentemente malo en el almacenamiento de archivos binarios Si registra sus tarros y luego tiene que realizar actualizaciones en la línea, pronto su depósito será de cientos de megabytes.
Eso es bueno saber. Gracias por el consejo. – dan
- 1. Configuración de GIT para el proyecto Symfony2: por qué agregar la carpeta web/bundles a gitignore
- 2. ¿qué es un divertido proyecto para principiantes?
- 3. ¿qué debería estar en el archivo .gitignore para un proyecto de netbeans java?
- 4. Administrar log4j.properties con lein
- 5. gitignore por tamaño de archivo?
- 6. ¿qué es un proyecto en eclipse?
- 7. ¿Es demasiado difícil un proyecto? ¿Qué haces?
- 8. ¿Qué es antlr3 y por qué está referenciado por defecto en un proyecto VS2012 MVC4?
- 9. clojure/lein REPL con jline
- 10. Añadir .gitignore a gitignore
- 11. ¿Qué es un buen .gitignore para usar con Rails en Heroku?
- 12. ¿Qué debo poner en un archivo meteorito .gitignore?
- 13. ¿Por qué mi archivo .gitignore global no se ignora?
- 14. ¿Por qué no funciona gitignore en este caso?
- 15. .gitignore no funciona para mí
- 16. Sugerencias para Grails .gitignore
- 17. ¿Qué es mejor? ¿Proyecto de prueba unitaria por solución o por proyecto?
- 18. ¿Por qué la línea de lectura no regresa después de presionar ENTRAR (parece un bloqueo) usando lein run, pero funciona con lein repl?
- 19. Cómo forzar Lein DEP para re-fetch tarros locales/libs
- 20. Eclipse Android y gitignore
- 21. Cómo acelerar Lein Uberjar Buid
- 22. leiningen install lein-noir failed
- 23. .gitignore archivo, ¿dónde debería ponerlo en mi proyecto xcode?
- 24. ¿Por qué es un puntero
- 25. Doxygen para un proyecto administrado con git?
- 26. ¿Por qué no es este un esquema válido para Rx?
- 27. ¿Puedo incluir otro archivo .gitignore en un archivo .gitignore? (Como # include en lenguajes como C)
- 28. ¿Es posible tener un .gitignore personalizado? ¿Acceso de solo lectura?
- 29. Práctica recomendada para usar varios archivos .gitignore
- 30. clojure lein: ¿Cómo incluyo la fuente de otro directorio en mi proyecto?
Puse [rome/rome "1.0"] en mi proyecto: dependencias, pero cuando intento obtener deps, recibo un error que dice que necesito descargar rome.jar: 1.0 manualmente. En este punto, no sé qué hacer. – dan
ya sea que cargue roma a clojars oa su repositorio maven local, entonces lein lo encontrará –
¿Cuánto Maven debería aprender para administrar las dependencias lein? – dan