0

我正在研究一个新的 CI 概念证明。我正在使用 TFS 构建并尝试集成 jFrog Artifactory。

我正在尝试在我的 Artifactory 存储库中创建一个文件夹结构,如下所示:[repository]/[sub-repository]/[Artifacts Folder]/[Versioned Artifact Folder]/[Versioned Artifact Zip Archive]

我已经使用 PowerShell 在我的 Artifactory 暂存目录中编写了以下正确结构的创建脚本:[Artifacts Folder]\[Versioned Artifact Folder]\[Versioned Artifact Zip Archive]

...最后将我的 [Artifacts Folder] 压缩到 [Artifacts Folder].zip 存档中,以便部署到 Artifactory 存储库。

现在,尽管 jFrog 文档表明为此目的在 jFrog 1.7 中引入了 --explode 选项,但尝试使用此选项上传会返回错误使用错误:

2018-10-01T10:21:28.3168258Z 运行 'C:\jfrog\jfrog.exe' rt upload '[Artifactory Staging Directory]\[Artifacts Folder]\*' '[repository]/[sub-repository]/[Artifacts文件夹]' --url= https://www.artifactrepository.xxx.net/artifactory --explode=true --user=******** --password=******** - -props='build.number=[build_number];build.name=[build_name]'

2018-10-01T10:21:28.3168258Z

2018-10-01T10:21:28.3168258Z

2018-10-01T10:21:29.6761967Z 使用不正确。

2018-10-01T10:21:29.6761967Z

2018-10-01T10:21:29.6761967Z 名称:

2018-10-01T10:21:29.6761967Z jfrog rt 上传 - 上传文件

2018-10-01T10:21:29.6761967Z

2018-10-01T10:21:29.6761967Z 用法:

2018-10-01T10:21:29.6761967Z jfrog rt 上传 [命令选项] [参数...]

2018-10-01T10:21:29.6761967Z

2018-10-01T10:21:29.6761967Z 选项:

2018-10-01T10:21:29.6761967Z --url [可选] Artifactory URL

2018-10-01T10:21:29.6761967Z --user [可选] Artifactory 用户名

2018-10-01T10:21:29.6761967Z --password [可选] Artifactory 密码

2018-10-01T10:21:29.6761967Z --apikey [可选] Artifactory API 密钥

2018-10-01T10:21:29.6761967Z --ssh-key-path [可选] SSH 密钥文件路径

2018-10-01T10:21:29.6761967Z --props [可选] 要附加到上传的工件的“key1=value1;key2=value2,...”形式的属性列表。

2018-10-01T10:21:29.6761967Z --deb [可选] 用于分发/组件/架构形式的 Debian 软件包。

2018-10-01T10:21:29.6917936Z --recursive [默认值:true] 如果您不希望在要上传到 Artifactory 的子文件夹中收集工件,请设置为 false。

2018-10-01T10:21:29.6917936Z --flat [默认值:true] 如果设置为 false,则根据文件系统层次结构上传文件。

2018-10-01T10:21:29.6917936Z --regexp [默认值:false] 设置为 true 以使用正则表达式而不是通配符表达式来收集要上传的文件。

2018-10-01T10:21:29.6917936Z --threads [默认值:3] 并行上传的工件数。

2018-10-01T10:21:29.6917936Z --dry-run [默认值:false] 设置为 true 以禁用与 Artifactory 的通信。

2018-10-01T10:21:29.6917936Z

我使用 jFrog Artifactory Deployer 2.1.1 TFS 构建任务。

此处描述了此命令行选项:https ://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-UploadingFiles

但是,我们 TFS 服务器上的 jFrog.exe 似乎不理解 --explode 命令行选项。

(注意:我不确定在我们的构建服务器上运行的是什么版本的 jFrog.exe;目前正在等待负责团队的详细信息,后续更新。)

是 jFrog.exe 版本较旧(1.7 之前)并且不支持 --explode 命令选项的问题吗?如果是这样,是否有另一种方法可以在保留暂存文件夹结构的同时实现多个工件上传?

(注意:我应用了 --flat=false 选项,但暂存文件夹层次结构被保留回根目录;这也不是必需的)。

感谢您的见解,感谢您的关注..

4

1 回答 1

1

最后,我们能够通过使用如下占位符来解决缺少“--explode”命令选项的问题:

在 jFrog Artifactory Deployer 任务中:

工件路径:[工件文件夹]\(**)\(*)

目标存储库 [repository]/[sub-repository]/[Artifacts 文件夹]/{1}/

以这种方式使用占位符可以根据需要在推送到 Artifactory 存储库时保留文件夹结构。

于 2018-10-02T10:22:52.993 回答