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.
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"
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 .
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 .
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
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.
$ 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