Actualmente, estoy probando Gradle como alternativa a Maven. En mis proyectos, hay algunos frascos de terceros, que no están disponibles en ningún repositorio (Maven). Mi problema ahora es cómo puedo administrarlo para instalar estos archivos jar en mi repositorio local de .gradle. (Si es posible, no quiero usar el repositorio local de Maven, porque Gradle debería ejecutarse de forma independiente.) En este momento, recibo muchas excepciones debido a que faltan frascos. En Maven, es bastante simple ejecutando el comando de instalación. Sin embargo, mi búsqueda en Google de algo similar al comando de instalación de Maven no fue exitosa. ¿Alguien tiene una idea?Gradle: Poner un jar de terceros disponible para el repositorio local de gradle
Respuesta
Tal vez me falta algo de mi lectura de su pregunta, suponiendo que su cesión temporal Gradle es del tipo flatDir, usted debería ser capaz de copiar los archivos que hay en la forma myjar-1.0.jar y resolverlos como myjar de versión 1.0.
No estoy seguro de por qué debería ser necesario que Gradle ejecute maven para acceder a un repositorio maven local. Puede definir los repositorios maven y resolver las dependencias. Puede usar gradle upload
para enviar los repositorios maven locales o remotos si es necesario. En ese caso, ejecutará maven.
Creo que algo como esto debería funcionar:
dependencies {
files('yourfile.jar')
}
¿Funciona para usted?
puede incluir su archivo JAR dependencias del sistema como:
dependencies {
runtime files('libs/a.jar', 'libs/b.jar')
runtime fileTree(dir: 'libs', include: '*.jar')
}
puede cambiar en tiempo de ejecución para la compilación/testCompile/etc ..
En resumen: a desplegar gestor de repositorio. Puede local, en la LAN de la compañía.
Una forma completamente diferente de pensar acerca de este tipo de problema, especialmente si ocurre a menudo, es usar un administrador de repositorio. Existen algunas excelentes opciones de código abierto como Artifactory, Nexus o Archiva.
Supongamos que tiene un archivo jar de origen dudoso que debe incluirse en su compilación hasta que tenga la oportunidad de refactorizarlo. Un administrador de repositorio le permitiría subir el archivo a su propio repositorio como, por el bien de este ejemplo, dudoso origen-UNKNOWN.jar
Luego, su build.gradle sería algo como esto:
repositories {
mavenRepo urls: "http://your.own.repository/url";
}
dependencies {
compile "dubious:origin:UNKNOWN";
}
Existen muchas otras ventajas en el uso de un administrador de repositorio, como el almacenamiento en memoria caché de artefactos remotos, eliminar artefactos de scm, versiones intermedias, permisos de usuario más granulares, etc.
En el lado negativo, estaría agregando un servidor que lleva algunos gastos generales de mantenimiento para mantener sus compilaciones en ejecución.
Depende del tamaño de su proyecto, supongo.
Una respuesta más amplia fue dado en una lista de correo por Adam Murdoch en http://gradle.1045684.n5.nabble.com/Gradle-Make-a-3rd-party-jar-available-to-local-gradle-repository-td1431953.html
En abril de 2010 no había manera sencilla de agregar un nuevo jarfile a su repositorio ~/.gradle. Actualmente investigando si esto ha cambiado.
A partir de octubre de 2014, este sigue siendo el caso - porque Gradle hace una suma de control MD5 de su jarfile, no se puede simplemente descargarlo y ponerlo en un directorio bajo .gradle/cachés, y no lo hace Gradle , por lo que puedo ver, tiene tareas que le permiten tomar un archivo local y enviar ese archivo a su caché.
Opción usada (1) de la publicación de Adam Murdoch (ya enlazada arriba: http://gradle.1045684.n5.nabble.com/Gradle-Make-a-3rd-party-jar-available-to-local-gradle-repository-td1431953.html) con gradle-1.3 y funciona muy bien!
Aquí su comentario:
- Copiar los frascos a un directorio local y utilizar un repositorio flatDir() para utilizarlos fuera de allí. Por ejemplo, es posible copiarlos en $ projectdir/lib y en su fichero de construcción hacer:
repositorios { flatDir (dirs: 'lib')}
Los archivos en el directorio lib debe seguir el esquema de nombres: nombre-versión-clasificador.extensión, donde la versión y el clasificador son opcionales. Así, por ejemplo, puede llamarlos groovy-1.7.0.jar o incluso groovy.jar
Entonces, simplemente declarar las dependencias de forma normal:
dependencias { compilan 'maravilloso: maravilloso: 1.7. 0' }
Hay un poco más de detalle uno flatDir repositorio() en: http://gradle.org/0.9-preview-1/docs/userguide/dependency_management.html#sec:flat_dir_resolver
- similar a la anterior, pero utilizando una resolución de la hiedra en lugar de flatDir(). Esto es más o menos lo mismo que el anterior, pero permite un muchas más opciones en cuanto a nombres y ubicaciones.
Hay algo de detalle en: http://gradle.org/0.9-preview-1/docs/userguide/dependency_management.html#sub:more_about_ivy_resolvers
- no se moleste con la declaración de las dependencias. Simplemente copie los archivos jar en un directorio local en algún lugar y agregue una dependencia de archivos. Por ejemplo, si los frascos están en $ projectdir/lib:
dependencias { compilar FileTree ('lib') // esto incluye todos los archivos bajo 'lib' en la ruta de clase de compilación}
más detalles en: http://gradle.org/0.9-preview-1/docs/userguide/dependency_management.html#N12EAD
- uso experto de instalación para instalar las dependencias en su caché local de Maven, y el uso de la caché experto como un repositorio:
repositorios { mavenRepo (URL: nuevo archivo. (System.properties [ 'user.home'], '.m2/repositorio') Touri() toURL().)}
- 1. Gradle buscando zip en lugar de jar
- 2. Definición de classpath personalizado para un manifiesto jar en gradle
- 3. Gradle - Agregar un solo archivo a JAR
- 4. Crear un JAR ejecutable Groovy con Gradle
- 5. Uso de Gradle para crear un jar con dependencias
- 6. Gradle: Cómo cargar un archivo JAR personalizado en el repositorio de Maven
- 7. Gradle store en el sistema de archivos local
- 8. Manera más limpia en Gradle para obtener la ruta a un archivo jar en el caché de dependencia de gradle
- 9. Cómo compilar fuentes jar con gradle
- 10. ¿Cómo reemplazar correctamente la tarea Gradle 'jar'?
- 11. ¿Cómo configurar el repositorio local y remoto de maven en el archivo de compilación gradle?
- 12. Cambiar la ubicación del repositorio local de gradle para la compilación en la nube de Jenkins
- 13. Gradle: nombre de archivo jar en el complemento java
- 14. Incluyendo archivo jar local en el proyecto en tiempo de compilación usando gradle
- 15. gradle runJar tarea?
- 16. Gradle alterno a mvn install
- 17. Archivo de copia de plugin de Gradle del plugin jar
- 18. Construyendo un uberjar con Gradle
- 19. Guía para pruebas de scripts Gradle
- 20. entendimiento mavenDeployer de Gradle
- 21. ¿Cómo especificar una ruta relativa al repositorio de Ivy local en Gradle?
- 22. Sublime Build System para Gradle
- 23. Dependencias de instantáneas con Gradle
- 24. Instalar Gradle en Ubuntu 12.04
- 25. ¿Cómo puedo crear un contenedor de rutas en Gradle?
- 26. Spock sin maven o gradle
- 27. Dependencia de prueba de Gradle
- 28. Cómo interpretar Gradle DSL
- 29. prueba continua con gradle
- 30. Comenzando con Gradle
bien, lo siento por la pregunta ingenua, pero si pongo archivos ('C: /Temp/myFile.jar'), ¿funcionará o tendré que añadir una variable de entorno adicional? – Gabriel