如何使用gradle将文件上载到artifactory通用存储库?

如何使用gradle将文件上载到artifactory通用存储库?,gradle,artifactory,Gradle,Artifactory,我用gradle构建应用程序发行版,其中一个tar文件包含所有需要的内容。我在artifactory中创建了一个通用存储库。我想将tarball上传到通用存储库 通过查阅此文档 我没有找到这样做的方法。 我是一个新的毕业生和人工用户,谁能给我指导 task uploadDistroTar(type: org._10ne.gradle.rest.RestTask) { httpMethod = 'PUT' uri = 'http://x.x.x.x:8081/artifactor

我用gradle构建应用程序发行版,其中一个tar文件包含所有需要的内容。我在artifactory中创建了一个通用存储库。我想将tarball上传到通用存储库

通过查阅此文档

我没有找到这样做的方法。 我是一个新的毕业生和人工用户,谁能给我指导

task uploadDistroTar(type: org._10ne.gradle.rest.RestTask) {
    httpMethod = 'PUT'
    uri = 'http://x.x.x.x:8081/artifactory/repo/foo.tar'
    username = 'admin'
    password = 'passwd'
    requestContentType = groovyx.net.http.ContentType.BINARY
    requestBody = new File("build/distributions/foo.tar").bytes
}

最简单的方法是使用。只需使用PUT请求将文件上载到所需的存储库。

最后,我通过阅读插件的源代码找到了解决方案, 刚刚设定:

preemptiveAuth = true

更现代的解决方案是使用:


感谢您的回复,但当我使用以下任务上载tar文件时,由于安全原因,它失败了,在artifactory日志中显示2015-08-27 12:11:03928[DENIED DEPLOY]repo:/foo.tar for anonymous/x.x.x,它没有使用我提供的用户名,而是使用anonymous user。如果我授予匿名使用权限来放置文件,那么我可以成功上载tar文件。但我只希望一些注册用户能够上传文件。我已经将任务文件修改为问题,现在是时候召唤@noamt了,插件的作者。使用Artifactory Java Client的最新2.5.1版本,我总是在org.apache.http.Client.ClientProtocolException处收到:{code}org.apache.http.impl.Client.InternalHttpClient.doExecute(InternalHttpClient.Java:187)***剪切***由以下原因引起:org.apache.http.client.NonRepeatableRequestException:无法使用不可重复的请求实体重试请求。在org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:226){code}有人知道为什么吗?提前谢谢。
Artifactory artifactory = ArtifactoryClientBuilder.create()
    .setUrl("ArtifactoryUrl")
    .setUsername("username")
    .setPassword("password")
    .build();

java.io.File file = new java.io.File("fileToUpload.txt");
File result = artifactory.repository("RepoName").upload("path/to/newName.txt", file).doUpload();