Command line 如何使用命令行将文件部署到Artifactory?

Command line 如何使用命令行将文件部署到Artifactory?,command-line,gradle,artifactory,Command Line,Gradle,Artifactory,我花在这件事上的时间比我愿意承认的多得多。我正试图从命令行将一个文件部署到我的Artifactory服务器中。我使用gradle来实现这一点,因为这就是我们管理java构建的方式。但是,该工件是NDK/JNI构建工件,不使用gradle 所以我只需要最简单的gradle脚本来进行部署。相当于: scp <file> <remote> scp 我目前正在尝试使用artifactory插件,但在查找该插件的引用方面运气不佳。可以在中找到artifactory插件的文档,正

我花在这件事上的时间比我愿意承认的多得多。我正试图从命令行将一个文件部署到我的Artifactory服务器中。我使用gradle来实现这一点,因为这就是我们管理java构建的方式。但是,该工件是NDK/JNI构建工件,不使用gradle

所以我只需要最简单的gradle脚本来进行部署。相当于:

scp <file> <remote>
scp

我目前正在尝试使用
artifactory
插件,但在查找该插件的引用方面运气不佳。

可以在中找到
artifactory
插件的文档,正如预期的那样

请注意,建议使用支持新Gradle发布模型的较新插件-

关于从命令行上传,你真的不需要gradle。您可以使用CURL或任何其他工具执行

当然,如果您只是想将文件放入Artifactory,您可以随时使用。

看看,大多数情况下,您不能使用
scp
命令,而是对RESTAPI使用
curl
命令

$ curl -X POST $SERVER/$PATH/$FILE --data @localfile
大体上看起来像

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

scp
命令仅在您确实想要访问由
artifactory

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"
$curl-v——用户用户名:密码——数据二进制@local file-X PUT”http:///artifactory/abc-snapshot-local/remotepath/remotefile"
$curl-v-X PUT\
--用户用户名:密码\
--上传文件\
http://localhost:8080/artifactory/libs-发布local/my/jar/1.0/jar-1.0.jar

我建议使用
jrog
CLI,而不是使用
curl
命令

从这里下载-并使用以下命令(确保文件可执行)-

系统将首次提示您输入凭据和回购URL


您可以使用此CLI工具执行许多其他操作,请查看此处的详细说明-。

具有讽刺意味的是,我在回答自己的问题。在处理这个问题两个多小时后,我在github上找到了一个示例项目:


该项目甚至包括一个简单的bash脚本,用于从我正在寻找的命令行执行精确的部署/复制,以及两个不那么简单的gradle脚本。

不幸的是,缺少文档。例如,所使用的DSL没有参考,示例脚本中有语法错误。通过UI部署不是一个选项,因为这是针对CI的。我目前正在开发REST API。还不清楚如何从REST API填充maven pom元数据。我不知道为什么会进行向下投票。我精确地回答了您的问题,包括如何从cmd(通过REST)部署,以及插件的引用(在用户指南中)在哪里。看起来你想问别的问题,没关系,但我不确定答案有多糟糕。指南记录了DSL中所有可能的值。你错过了什么?指向稀疏的文档并不是在回答问题。你是否有一个示例脚本(gradle等)可以上传并生成pom?无论我做什么,我都会得到一个“401:Unauthorized”。我尝试了几个通过teamcity工作的用户凭据,但没有骰子。您的401可能是由于您的服务器使用的授权类型。您可能需要在PUT的标题中设置auth。类似于-H“Authorization:Basic YXBpdXNlcjphcGlwd2Q=”注意,artifactory不会自动处理校验和。要生成它们,必须包含“校验和”标题。i、 e.
curl-H“X-Checksum-Md5:8a0daa40b5b6683897fa319b6a67c090”-H“X-Checksum-Sha1:586d62d7f56b58dc12d32800ba025b424cfd7429”…
是否可以从一个工件从批处理命令下载文件?您可以使用wget:类似的东西:wget--user=“”--password password=“”--no check certificate-P.-r--no parent--reject“index.html*”--无父级--递归--相对--级别=1--无目录
$ 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
./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/