web-dev-qa-db-fra.com

Comment déployer un fichier sur Artifactory à l'aide de la ligne de commande?

J'ai passé beaucoup plus de temps là-dessus que je ne veux l'admettre. J'essaie de déployer un seul fichier sur mon serveur Artifactory à partir de la ligne de commande. Je fais cela en utilisant gradle parce que c'est ainsi que nous gérons nos Java. Cependant, cet artefact est un artefact de construction NDK/JNI et n'utilise pas gradle.

J'ai donc juste besoin du script Gradle le plus simple pour faire le déploiement. Quelque chose d'équivalent à:

scp <file> <remote>

J'essaie actuellement d'utiliser le plugin artifactory et j'ai peu de chance de trouver une référence pour le plugin.

28
Andrew Prock

curl POST n'a pas fonctionné pour moi. PUT a fonctionné correctement. L'utilisation est

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

exemple :

$ curl -v --user username:password --data-binary @local-file -X PUT "http://<artifactory server >/artifactory/abc-snapshot-local/remotepath/remotefile"
39
diptia

Au lieu d'utiliser la commande curl, je recommande d'utiliser la CLI jrog.

Téléchargez ici - https://www.jfrog.com/getcli/ et utilisez la commande suivante (assurez-vous que le fichier est exécutable) -

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

Voici un exemple simple:

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

Vous serez invité pour les informations d'identification et l'URL de mise en pension pour la première fois.

Vous pouvez faire beaucoup d'autres choses avec cet outil CLI, consultez les instructions détaillées ici - https://www.jfrog.com/confluence/display/RTF/JFrog+CLI .

11
Gilad Sharaby

La documentation du plugin artifactory se trouve, comme prévu, dans Artifactory User Guide .

Veuillez noter qu'il est conseillé d'utiliser le plugin plus récent - artifactory-publish , qui prend en charge le nouveau modèle de publication Gradle.

En ce qui concerne le téléchargement depuis la ligne de commande, vous n'avez vraiment pas besoin de gradle pour cela. Vous pouvez exécuter une requête PUT simple en utilisant CURL ou tout autre outil.

Et bien sûr, si vous voulez simplement mettre votre fichier dans Artifactory, vous pouvez toujours le déployer via l'interface utilisateur .

9
JBaruch

Jetez un œil à la Artifactory REST API , la plupart du temps, vous ne pouvez pas utiliser la commande scp, utilisez plutôt la commande curl vers = REST API.

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

Surtout, il ressemble

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

La commande scp n'est utilisée que si vous voulez vraiment accéder au dossier interne qui est géré par artifactory

5
Larry Cai

Ironiquement, je réponds à ma propre question. Après quelques heures de travail supplémentaires sur le problème, j'ai trouvé un exemple de projet sur github: https://github.com/JFrogDev/project-examples

Le projet comprend même un script bash simple pour effectuer le déploiement/copie exact à partir de la ligne de commande que je cherchais, ainsi que quelques scripts Gradle moins simples.

2
Andrew Prock
$ 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
kazerm