¿Cómo puedo implementar un archivo en Artifactory usando la línea de comandos?


He pasado mucho más tiempo en esto del que me gustaría admitir. Estoy tratando de implementar un solo archivo en mi servidor Artifactory desde la línea de comandos. Estoy haciendo esto usando gradle porque así es como administramos nuestras compilaciones de Java. Sin embargo, este artefacto es un artefacto de construcción NDK/JNI, y no usa gradle.

Así que solo necesito el script de gradle más simple para hacer la implementación. Algo equivalente a:

scp <file> <remote>

Actualmente estoy tratando de usar el plugin artifactory, y estoy teniendo poca suerte en localización de una referencia para el plugin.

Author: Andrew Prock, 2013-11-19

6 answers

Curl POST no funcionó para mí . PONER funcionó correctamente . El uso es

curl -X PUT $SERVER/$PATH/$FILE --data-binary @localfile

Ejemplo:

$ curl -v --user username:password --data-binary @local-file -X PUT "http://<artifactory server >/artifactory/abc-snapshot-local/remotepath/remotefile"
 38
Author: diptia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-25 02:30:44

En lugar de usar el comando curl, recomiendo usar la CLI jrog.

Descarga desde aquí - https://www.jfrog.com/getcli / y utilice el siguiente comando (asegúrese de que el archivo es ejecutable) -

./jfrog rt u <file-name> <upload-path>

Aquí hay un ejemplo simple:

./jfrog rt u sample-service-1.0.0.jar libs-release-local/com/sample-service/1.0.0/

Se le solicitará credenciales y la URL del repositorio por primera vez.

Puede hacer muchas otras cosas con esta herramienta de CLI, consulte las instrucciones detalladas aquí - https://www.jfrog.com/confluence/display/RTF/JFrog+CLI .

 11
Author: Gilad Sharaby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-30 02:17:26

La documentación para el complemento artifactory se puede encontrar, como es de esperar, en la Guía del Usuario de Artifactory.

Por favor, tenga en cuenta que se aconseja utilizar el nuevo plugin - artifactory-publish , que soporta el nuevo modelo de publicación de Gradle.

Con respecto a la carga desde la línea de comandos, realmente no necesitas gradle para eso. Puede ejecutar una simple PUT query usando CURL o cualquier otra herramienta.

Y, por supuesto, si solo desea obtener su archivo en Artifactory, siempre puede desplegarlo a través de la interfaz de usuario.

 9
Author: JBaruch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-19 00:38:47

Eche un vistazo a la API REST Artifactory, en su mayoría no puede usar el comando scp, en su lugar use el comando curl hacia la API REST.

$ curl -X POST $SERVER/$PATH/$FILE --data @localfile

En su mayoría parece

$ curl -X POST http://localhost:8081/artifactory/abc-snapshot-local/remotepath/remotefile --data @localfile

El comando scp solo se usa si realmente desea acceder a la carpeta interna que administra artifactory

 5
Author: Larry Cai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-01 10:13:52

Irónicamente, estoy respondiendo a mi propia pregunta. Después de un par de horas más trabajando en el problema, encontré un proyecto de ejemplo en github: https://github.com/JFrogDev/project-examples

El proyecto incluso incluye un script bash sencillo para hacer la implementación/copia exacta desde la línea de comandos que estaba buscando, así como un par de scripts gradle menos sencillos.

 2
Author: Andrew Prock,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-08 22:53:23
$ curl -v -X PUT                    \
  --user username:password          \
  --upload-file <path to your file> \
  http://localhost:8080/artifactory/libs-release-local/my/jar/1.0/jar-1.0.jar
 1
Author: kazerm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-30 02:19:25