Как развернуть файл в Artifactory с помощью командной строки?
Я потратил гораздо больше времени на это, чем я признаю. Я пытаюсь просто развернуть один файл на моем сервере Artifactory из командной строки. Я делаю это с помощью gradle, потому что так мы управляем нашими сборками java. Однако этот артефакт является артефактом сборки NDK/JNI и не использует gradle.
Поэтому мне просто нужен простейший gradle script для развертывания. Что-то эквивалентное:
scp <file> <remote>
В настоящее время я пытаюсь использовать плагин artifactory
, и мне не повезло найти ссылку для плагина.
Ответы
Ответ 1
curl POST не работал у меня. PUT работал правильно. Использование
curl -X PUT $SERVER/$PATH/$FILE --data-binary @localfile
пример:
$ curl -v --user username:password --data-binary @local-file -X PUT "http://<artifactory server >/artifactory/abc-snapshot-local/remotepath/remotefile"
Ответ 2
Документацию для плагина artifactory
можно найти, как и ожидалось, в Artifactory User Guide.
Обратите внимание, что рекомендуется использовать новый плагин - artifactory-publish, который поддерживает новую модель публикации Gradle.
Что касается загрузки из командной строки, для этого вам действительно не нужен Gradle. Вы можете выполнить простой запрос PUT с помощью CURL или любого другого инструмента.
И, конечно, если вы просто хотите получить свой файл в Artifactory, вы всегда можете развернуть его через пользовательский интерфейс.
Ответ 3
Вместо использования команды curl
я рекомендую использовать CLI jrog
.
Загрузите отсюда https://www.jfrog.com/getcli/ и используйте следующую команду (убедитесь, что файл выполним) -
./jfrog rt u <file-name> <upload-path>
Вот простой пример:
./jfrog rt u sample-service-1.0.0.jar libs-release-local/com/sample-service/1.0.0/
В первый раз вы будете запрашивать учетные данные и URL-адрес репо.
Вы можете сделать много других вещей с помощью этого инструмента CLI, ознакомьтесь с подробными инструкциями здесь - https://www.jfrog.com/confluence/display/RTF/JFrog+CLI.
Ответ 4
Посмотрите Artifactory REST API, в основном вы не можете использовать команду scp
, вместо этого используйте команду curl
в направлении REST API.
$ curl -X POST $SERVER/$PATH/$FILE --data @localfile
В основном это выглядит как
$ curl -X POST http://localhost:8081/artifactory/abc-snapshot-local/remotepath/remotefile --data @localfile
Команда scp
используется, только если вы действительно хотите получить доступ к внутренней папке, которой управляет artifactory
Ответ 5
$ 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
Ответ 6
По иронии судьбы, я отвечаю на свой вопрос. После нескольких часов работы над проблемой я нашел образец проекта на github: https://github.com/JFrogDev/project-examples
В проект входит простой bash script для выполнения точного развертывания/копирования из командной строки, который я искал, а также несколько менее простых сценариев gradle.