Подтвердить что ты не робот

Как развернуть файл в Artifactory с помощью командной строки?

Я потратил гораздо больше времени на это, чем я признаю. Я пытаюсь просто развернуть один файл на моем сервере Artifactory из командной строки. Я делаю это с помощью gradle, потому что так мы управляем нашими сборками java. Однако этот артефакт является артефактом сборки NDK/JNI и не использует gradle.

Поэтому мне просто нужен простейший gradle script для развертывания. Что-то эквивалентное:

scp <file> <remote>

В настоящее время я пытаюсь использовать плагин artifactory, и мне не повезло найти ссылку для плагина.

4b9b3361

Ответ 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.